我手动管理我的视图的UINavigationBar。 Bar本身和第一个UINavigationItem是在Interface Builder中创建的。在我的代码中,基于各种事件,我将新的导航项目推送到栏上,并将适当的视图作为主视图的子视图进行绘制。这一切似乎都很好,但是当我选择导航栏后退按钮时,两件物品会从物品堆栈中删除,而不是像我所预期的那样。为了测试,我把我的控制器为代表的酒吧和陷阱2委托方法:UINavigationBar似乎弹出2个项目在“后退”堆栈
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item;
和
- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item;
我弹出前右发现,在导航栏的项目是正确的,例如,3.在第二种方法中,在弹出之后,即使弹出的项目是最后一个项目,项目也是1 - 不知何故中间项目丢失。我很难理解如何调试,并会欣赏任何想法。
请注意,由于各种原因,我没有使用导航控制器。
是的,谢谢。我在想,也许有人调用didPopItem和shouldPopItem两次,这就是为什么我设置了委托方法,以便可以捕获这些方法。他们只被调用一次。 当时看起来更容易扩展我的viewcontroller而不是实现导航控制器。考虑到IB给你提供的工具来设置它,我认为它是可以的。另外,我对iphone开发相当陌生,并且喜欢理解框架机制。我已经在我的工作方式现在,并粉笔这与环境,以避免我的理解又一件事... – farhadf 2009-08-17 17:21:52