【问题标题】:change RootviewController to Navigation controller将 RootviewController 更改为 Navigation 控制器
【发布时间】:2023-03-09 13:03:01
【问题描述】:

我是 iPhone 新手,

我想将我的 Rootviewcontroller 更改为我的新类并使其成为导航控制器。

这是我的代码 sn-p,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    


    UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:detailViewController];
    [self.window addSubview:navigationController.view];

    [self.window makeKeyAndVisible];


    return YES;
}

我收到SIGABRT 说'adding a root view controller <NewClass: 0x6a8dd50> as a child of view controller:

【问题讨论】:

    标签: iphone ios ipad uinavigationcontroller rootview


    【解决方案1】:

    代替:

    [self.window addSubview:navigationController.view];
    

    使navigationController 成为rootViewController 的window:

     self.window.rootViewController = navigationController;
    

    另外,detailViewController 是 UINavigationController 类型吗?您不能将 UINavigationController 设置为另一个 UINavigationController 对象的根。

    【讨论】:

      【解决方案2】:

      只要你想设置:

      DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
      UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:detailViewController];
      self.window.rootViewController =nil;
      self.window.rootViewController = navigationController;
      [self.window makeKeyAndVisible];
      

      编辑 :直接使用AppDelegate instance 将rootViewController 设置为UIWindow,如上所示。

      【讨论】:

        【解决方案3】:

        只需添加这一行,

        RootViewController *defaultViewController=[[RootViewController alloc]initWithNibName:@"NAME_OF_XIB" bundle:nil];

        在 UINavigationController 初始化之前,

        RootViewController *defaultViewController=[[RootViewController alloc]initWithNibName:@"NAME_OF_XIB" bundle:nil];
        UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:detailViewController];
        [self.window addSubview:navigationController.view];
        
        [self.window makeKeyAndVisible];
        return YES;
        

        【讨论】:

          【解决方案4】:

          将您的 RootViewController 更改为 NavigationController..

          UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:self.detailViewController];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-05-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-19
            • 2021-05-24
            相关资源
            最近更新 更多