Domanda

La mia applicazione utilizza pushViewController per mostrare il controller di navigazione in modo modale

 [navigationController pushViewController:_viewController animated:YES];

Il controller di navigazione ha completato il pulsante

UIButton* backButton = [UIButton buttonWithType:101]; 
[backButton addTarget:self action:@selector(dismissView:) forControlEvents:UIControlEventTouchUpInside];
[backButton setTitle:@"Done" forState:UIControlStateNormal];

UIBarButtonItem* backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

self.navigationItem.leftBarButtonItem = backItem;
[backItem release];

Quando si preme il pulsante Fine, voglio che torni alla finestra principale

-(void) dismissView: (id)sender

{
    [self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];

}

Ma quando premo il pulsante Fine non succede nulla.Perché?

È stato utile?

Soluzione

Per favore NSLog nella tua dissmissView

-(void) dismissView: (id)sender

{
   NSLog(@"Hii....");
    [self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];

}

o esegui il debug dell'app con un punto di interruzione.

Altri suggerimenti

UIButton* backButton = [UIButton buttonWithType:101];

Sono abbastanza sicuro che "101" non sia valido

+ (id)buttonWithType:(UIButtonType)buttonType

dovresti utilizzare uno dei seguenti valori UIButtonType

typedef enum {
    UIButtonTypeCustom = 0,
    UIButtonTypeRoundedRect,
    UIButtonTypeDetailDisclosure,
    UIButtonTypeInfoLight,
    UIButtonTypeInfoDark,
    UIButtonTypeContactAdd,
} UIButtonType;

oltre a questo, prova il tuo codice metti un po 'di NSLog nel tuo dismissView: per vedere se viene chiamato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top