pushViewController e popToRootViewController
-
29-10-2019 - |
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é?
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