2012-06-29 29 views
0

我有一个导航栏没有任何导航控制器的视图“MainView”,也有一个没有标签栏控制器的标签栏。每个标签栏项目都有自己的视图控制器。每次我点击一个标签栏项目,它只是删除当前的视图控制器,并插入另一个视图控制器。在另一个视图上添加一个导航栏项“后退”

然后,某个标签栏项目有一个视图“listview”,这个视图有一个可用视图,当我点击uitableview中的一个项目时,它将删除当前视图并添加另一个子视图“detailview”。但是这一次,我想在当前视图上添加一个导航按钮,以便我可以回到“listview”。

如何从当前视图访问“MainView”上的导航栏?

+0

你真的应该使用视图控制器。仅使用视图实现整个应用程序和导航是一种反模式,您会遇到很多问题。 –

+0

否否,标签栏中的每个项目都会加载视图控制器。 –

+0

那么,有没有什么理由不能使用'UINavigationController'? –

回答

-1

听起来好像你只是在正确使用视图控制器时才使用视图的错误。如果你是一名新开发人员,这对于正确的做法尤为重要。

您的登录屏幕应该是视图控制器,例如, MyLoginViewController。这可以最初是主窗口的rootViewController,或者您可以在应用启动时在主内容中以模态形式呈现它。

登录后,您可以将窗口的rootViewController替换为您的主视图控制器,或者如果以模态方式呈现它,请关闭登录屏幕。

您的主视图控制器应该是一个UITabBarController,如果你想与后退按钮等PUSH/POP导航,你需要把UINavigationController每个选项卡里面,然后推最顶部视图控制器到这一点。

这一切都可以很容易地使用接口生成器来完成。

+0

感谢您的快速回复Mike,我确实有这样的“你的登录屏幕应该是一个视图控制器,例如MyLoginViewController。它最初可以是你的主窗口的rootViewController,或者你可以在应用启动时在你的主内容中以模态形式呈现它“。但问题是,接下来是什么。如果我有一个UITabBarController,选项卡上的每个视图都可以调用相同的UINavigationController? –

+0

每个选项卡都有自己的导航控制器。这样每个标签都可以像您期望的那样处于其层次结构的不同级别。已经被推入导航控制器的视图控制器可以通过使用'self.navigationController'来访问其父导航控制器。 –

相关问题