2011-10-02 80 views
0

在主页上有一个UITabBarController和一个SearchBar。 SearchBar搜索数据库中的项目,并选择一个项目时,跳转到选项卡2中的项目。我将视图层次结构更改为在该选项卡中使用UINavigationController。在我的viewDidLoad的UINavigationController的rootViewController,我推第一个viewController(3)。这是在这个viewController,搜索项目去。在选择搜索栏中的项目之前初始化UIViewController

如果我去那个标签只有一次,然后我的第一个viewController加载,我选择一个搜索项目,然后它的工作。问题是如果我永远不会去那个标签,我的第一个viewController没有推入堆栈,那么搜索不知道去哪里和崩溃。我很确定我做不是调用viewDid从我的第一个标签中加载我自己,以确保第一个ViewController被推入堆栈。我如何解决这个问题?有什么我可以在loadView中做的吗?谢谢。

回答

0

你是对的,viewDidLoad是一个委托方法,不应该被你调用。一,你可以从选项卡1遵循IS-的方法的,在标签2设定的firstViewController一个实例变量,像pendingItemIndex,对应于要显示在标签2.

然后,在viewDidLoad项目firstViewController,检查pendingItemIndex是否有有效值(可以将默认值设置为-1)。如果是,则显示相应的项目。

HTH,

阿克沙伊