我在主页上有一个UITabBarController和一个SearchBar。 SearchBar搜索数据库中的项目,当选择一个项目时,跳转到选项卡2中的该项目。我更改了我的视图层次结构以在该选项卡中使用UINavigationController。在我的用于UINavigationController的rootViewController的viewDidLoad中,我推送了第一个viewController(满分为3)。它位于此viewController上,搜索项目转到。
如果我只去一次那个标签,那么我的第一个viewController就被加载了,我选择了一个搜索项,然后就可以了。问题是如果我从未进入该选项卡并且我的第一个viewController没有被推入堆栈,那么搜索就不知道去哪里崩溃了。我很确定我 NOT 从我的第一个标签中调用viewDidLoad,以确保第一个ViewController被压入堆栈。我该如何解决这个问题?我在loadView中可以做些什么吗?感谢。
答案 0 :(得分:0)
你是对的,viewDidLoad
是委托方法,不应该由你调用。您可以遵循的方法之一是 - 从选项卡1,在选项卡2中设置firstViewController
的实例变量,类似pendingItemIndex
,对应于要在选项卡2中显示的项目。< / p>
然后,在viewDidLoad
的{{1}}中,检查firstViewController
是否具有有效值(您可以将默认值设置为-1)。如果是,则显示相应的项目。