2009-07-28 67 views
0

我使用UIViewController列出了2个不同地方的项目。一个地方是它的默认家,另一个地方是另一个控制器将它推到导航堆栈上以查看项目列表。标题和rightBarButtonItem从UINavigationBar消失

两个地方可以让你通过点击导航栏的添加按钮来添加新的项目了。该列表的行为是基于NSObject *决定的,其名称为targetController,由其调用者设置为self引用,否则默认为nil

我遇到了一个问题,如果你让它们同时在tabBar的单独标签中显示,那么navBar title/rightBarButtonItem会在首先调用的那个上消失。我终于明白,只要列表视图被按下,导致navigationItem被删除,navBar就会替换items堆栈。

我唯一的解决办法是强制列表的视图,只要按下一个按钮的TabBar项目被弹出。 有没有更好的方法?

顺便说一句,我选择使用相同的控制器2个中不同的地方,以避免重复的功能,并因而保持更少的代码。

+0

你是否在两个地方显示控制器的相同实例? – Tim 2009-07-28 22:46:56

回答

0

我敢肯定,并弹出和关闭导航堆栈的推观点是完全正确的方式去处理切换视图,而且如果你从导航Tab键把所有在一起,啪的观点是可能是保持低内存使用率的好方法。只记得发布它们。