我正在尝试构建一个iPhone应用程序,它有一个Tab栏作为根控制器和几个导航栏。我的疑问是,我是否应该为每个要放入应用程序的导航栏创建一个NavigationBarController类?或者是否可以只创建一个管理应用程序中存在的所有导航栏控制器的导航控制器?
如果应用程序中存在多个导航控制器,我可以使用“self”访问推送/弹出视图的正确导航控制器吗?或者我应该使用Application委托的代理来访问每个导航栏控制器吗?
(我假设所有导航栏控制器都在应用程序委托中声明,这种方法是正确的还是有更优雅的方法?)
提前多多感谢
答案 0 :(得分:2)
实现此目的的常用方法是创建Tab Bar应用程序,然后将选项卡栏中的每个项目更改为UINavigationController。如果你这样做,你绝对可以使用self来访问navigationController - 特别是你可以使用self.navigationController
。
答案 1 :(得分:1)
注意上述代码的这部分内容可能存在泄漏:
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tools];
你可以改用它:
UIBarButtonItem* rightButtonBar = [[UIBarButtonItem alloc] initWithCustomView:tools];
self.navigationItem.rightBarButtonItem = rightButtonBar;
[rightButtonBar release];
;)...或使用自动释放
答案 2 :(得分:0)
为每个标签插入唯一的UINavigationController
。
您不能在多个选项卡上管理单个控制器,因为导航控制器只能有一个线性堆栈的视图控制器。每个选项卡都应该有自己的导航控制器,每个选项卡中都有一个不同的根控制器。
答案 3 :(得分:0)
实现此目的的常用方法是创建Tab Bar应用程序和 然后将标签栏中的每个项目更改为UINavigationController。
这是实现这一目标的方法。我已将5个导航控制器加载到标签栏控制器中。关键提示是规划应用程序的导航,因为每个navController应该在新导航树开始的地方进行。