从appDelegate启动导航控制器
问题描述:
谁能告诉我如何从ÀppDelegate? I can start a
开始UINavigationContoller
rootViewContoller but cannot start a specific
UIViewController like I was trying in commented code. The commented code starts the **ChooseTableViewController** but does not display
UINavigationBar`。 什么是更好的方法? 这里是我的代码从appDelegate启动导航控制器
- (void)setRootViewController:(NSString *)storyBoardName {
//set the Root ViewController
UIStoryboard *story = [UIStoryboard storyboardWithName:storyBoardName
bundle:nil];
UINavigationController *newViewController =
[story instantiateInitialViewController];
self.window.rootViewController = newViewController;
/*
ChooseTableViewController *chooseTableViewController =
[story instantiateViewControllerWithIdentifier:@"ChooseTableViewController"];
self.window.rootViewController = chooseTableViewController;
*/
}
答
// Your main storyboard
UIStoryboard *story = [UIStoryboard storyboardWithName:storyBoardName bundle:nil];
// Your root navigation controller
UINavigationController *newViewController = [story instantiateInitialViewController];
// Your root view controller for root navigation controller
ChooseTableViewController *chooseTableViewController = [story instantiateViewControllerWithIdentifier:@"ChooseTableViewController"];
// Set your view controller as root view controller of your root navigation controller
newViewController.rootViewController = chooseTableViewController;
// set your root navigation controller
self.window.rootViewController = newViewController;
答
Appdelegate.h
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UINavigationController *navigationController;
Appdelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
self.navigationController = [storyboard instantiateViewControllerWithIdentifier:@"navigation"];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"ChooseTableViewController"];
navigationController=[[UINavigationController alloc]initWithRootViewController:viewController];
self.window.rootViewController =self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
把'ChooseTableViewController'作为'UINavigationController'的RootViewController的会为你工作。 –