Comment Ajouter un Nouveau StoryBoard, et de définir de devenir le Principal StoryBoard xCode sans erreur
Actuellement, je dispose d'une application avec une seule table de montage séquentiel. L'application développée est basée sur le maître-détail de la vue de mise en page. J'ai décidé d'ajouter un nouveau storyboard, et de définir de devenir le principal storyboard. Lorsque je clique sur exécuter, il sera exécuté et l'affichage d'une page blanche, qui est ce que j'attendais car je n'ai pas ajouté de vue des contrôleurs.
Je suis encore nouveau pour objective-C, en tant que tel, il ya beaucoup de choses que je ne comprends toujours pas, Voici la partie intéressante.
Quand j'ajoute un UIViewController(et associé à une sous-classe de UIViewController) à l'intérieur de mon nouveau changé Principal storyboard, puis essayé de l'exécuter, il affiche une erreur.
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController viewControllers]: unrecognized selector sent to instance 0x7569a80'
Sous mon AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Override point for customization after application launch.
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
return YES;
}
Je ne suis pas sûr que dois-je ajouter le code ci-dessus. J'ai essayé la ligne ci-dessous sans trop de succès,
UIViewController *viewController = (UIViewController *)self.window.rootViewController;
En tant que tel, comment puis-je résoudre ce problème?
- Avez-vous de code (peut-être dans l'app délégué) lorsque vous utilisez la méthode viewControllers (ce qui serait valable pour la barre d'onglet, la vue fractionnée, ou les contrôleurs de la navigation, mais pas pour un UIViewController)?
- J'ai pensé à ça aussi, mais je ne sais pas quoi ajouter. Mise à jour de mes codes ci-dessus.
Vous devez vous connecter pour publier un commentaire.
Prendre storyboard fichier de
New file-->ios-->user interface---> storyboard
créer
@property
storyboard dans appdelegatecomme
avant sa mise en .m ecrire fichier:
C'est de prendre refrence initiale viewcontroller.
puis
@synthesize storyboard
dans appdelegate.met puis pour la navigation, vous pouvez écrire dans
didFinishLaunchingWithOptions
//
instantiateInitialViewController
signifie qu'il renvoie la flèche pointée vue-contrôleur sur la table de montage séquentiel qui est la racine de vue-contrôleur.Sur Xcode 7, vous pouvez aller à l'info.plist et définissez la clé Principale "storyboard nom de base du fichier" le nom de votre nouvelle table de montage séquentiel .
Exemple: Vous créez un nouveau storyboard fichier par fichier -> new -> file -> Storyboard fichier et de vous enregistrer en tant que "MyAwesomeUI.storyboard", puis dans l'info.plist vous modifiez la clé de la "Main storyboard nom de base du fichier" à "MyAwesomeUI" .
Cheers!