如何在使用 UINavigationController 作为窗口的根视图时构建应用



我开始学习iOS开发,并尝试使用UINavigationController作为我的窗口的根视图。一切都很好,但我需要一些关于如何构建我的应用程序的建议。我也阅读了这里的文档和一些问题。

由于导航控制器正在管理我的所有其他内容视图控制器,因此所有这些视图控制器都需要一种向导航控制器发送消息的方式。正确的所以,我考虑过制作一个单独的导航控制器,任何其他视图控制器都可以调用它来推送新的视图控制器。或者,如果每个视图控制器都引用了导航控制器,那么它们也可以轻松地推送/弹出。这是我不确定的部分。

此外,由于有按钮和动作,我一直将目标设置为导航控制器,从那里它可以正确处理它,并自行按下或弹出。我为此做了UINavigationController的子类。我有我的视图控制器作为其中的引用。然而,我遇到了一个问题,我的UITableViewController正在处理一行的选择,我需要在顶部推送一个新的视图控制器,但我如何获得对导航控制器的引用?

我希望这是有道理的,任何关于如何构建这一结构的建议都将不胜感激。

谢谢!

我觉得你想得太多了。视图控制器内置navigationController属性,允许您引用导航控制器。也就是说,从嵌入导航控制器的视图控制器中推送新的视图控制器就像一样简单

UIViewController *myNewViewController = [[UIViewController alloc] init];
[self.navigationController pushViewController:myNewViewController animated:YES];

根据您的要求,您需要这样写:-

     UIViewController *myNewViewController = 
    [[[UIViewController alloc] 
    initWithNibName:@"yourNibName"] 
   bundle:nil]];
   [self.navigationController 
  pushViewController:myNewViewController 
   animated:YES];

这将推动堆栈底部的一个控制器。

相关内容

最新更新