2017-04-17 92 views
0

谁能告诉我如何从À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; 

    */ 

} 
+0

把'ChooseTableViewController'作为'UINavigationController'的RootViewController的会为你工作。 –

回答

0
// 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; 
1

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; 
    } 
+0

什么是instantiateViewControllerWithIdentifier:@“导航”在这里??它在该行崩溃 – Shelby

+0

这意味着导航控制器将是您的初始视图控制器和导航控制器的标识是@“导航” –

+0

但它在那里崩溃 – Shelby