Je souhaite utiliser un UITableView modal au démarrage pour demander aux utilisateurs un mot de passe, etc. s'ils ne sont pas déjà configurés. Cependant, la commande permettant d'appeler uitableview ne semble pas fonctionner dans viewDidLoad.Can presentModalViewController peut-il fonctionner au démarrage?
code de démarrage:
- (void)viewDidLoad {
rootViewController = [[SettingsController alloc]
initWithStyle:UITableViewStyleGrouped];
navigationController = [[UINavigationController alloc]
initWithRootViewController:rootViewController];
// place where code doesn't work
//[self presentModalViewController:navigationController animated:YES];
}
Cependant, le même code fonctionne très bien lorsqu'il est appelé plus tard par un bouton:
- (IBAction)settingsPressed:(id)sender{
[self presentModalViewController:navigationController animated:YES];
}
question connexe: comment puis-je sens (au niveau supérieur) lorsque la UITableView a utilisé la commande pour quitter?
[self.parentViewController dismissModalViewControllerAnimated:YES];
essayé viewWillAppear et obtenu le même mauvais effet que viewdidload. Quand j'utilise [self presentModalViewController: navigationController animé: YES]; dans applicationDidFinishLaunching, je reçois "SIGABRT". Je l'appelle probablement mal – BankStrong
Impossible de l'appeler à partir de 'applicationDidFinishLaunching' - c'est une méthode appartenant au délégué, qui n'est pas un contrôleur de vue. Vous avez besoin de l'objet contrôleur de vue racine. Souvent, il est automatiquement créé pour vous par Xcode; Recherchez une propriété synthétisée appelée 'viewController',' rootController', ou 'tabBarController', en fonction de votre type d'application. – Tim
Cela peut ne pas être clair (désolé!); ce que je voulais dire était dans 'applicationDidFinishLaunching' vous ne pouvez pas exécuter' [self present ...] '- à la place vous devez exécuter' [self.viewController present ...] 'ou similaire, en fonction du nom de votre contrôleur de vue objet. – Tim