Iphone UINavigationController';菜单';
我正在尝试创建一个“书式”界面。我有一个plist,其中包含一个数组,告诉我哪个视图控制器是下一个“页面”。所以我检查一下,将页面推到堆栈上,并用plist中的信息填充它 不过我还需要一个“菜单”按钮,这样用户可以在页面之间快速切换。这很简单,但如果用户从第1页跳到第3页,然后使用“后退”按钮,它显然会跳回第1页。但是我需要它跳到第二页Iphone UINavigationController';菜单';,iphone,ios,uinavigationcontroller,Iphone,Ios,Uinavigationcontroller,我正在尝试创建一个“书式”界面。我有一个plist,其中包含一个数组,告诉我哪个视图控制器是下一个“页面”。所以我检查一下,将页面推到堆栈上,并用plist中的信息填充它 不过我还需要一个“菜单”按钮,这样用户可以在页面之间快速切换。这很简单,但如果用户从第1页跳到第3页,然后使用“后退”按钮,它显然会跳回第1页。但是我需要它跳到第二页 实现这一目标的最佳方式是什么?我尝试过PoptoViewController:animated:但出现错误,告诉我我尝试弹出的vc不存在。我认为你不能通过弹出v
实现这一目标的最佳方式是什么?我尝试过PoptoViewController:animated:但出现错误,告诉我我尝试弹出的vc不存在。我认为你不能通过弹出viewControllers来实现。这是因为在你的navigationController.viewControllers数组中,你的page1索引为零,page3索引为1。当你执行PoptoViewController:animated:需要您可以直接访问上一个navigationController视图控制器,它的加载方式与您的情况类似,它的第1页加载在第3页之前。也许您想要的根本不是一个
UINavigationController
?它旨在管理视图控制器堆栈,但您需要的是控制器列表
您可以创建自己的UIViewController
自定义子类,该子类管理子视图控制器数组,用托管视图控制器中的视图填充UIScrollView
这样,UIScrollView
可以:
- 为您处理寻呼
- 后退、前进甚至跳跃只需设置
contentOffset
您说您在一个plist中拥有所有视图控制器,因此它们不能太多。因此,无需担心托管视图控制器的动态创建和复杂的生命周期管理。确定所需内容您需要推动每个页面以达到所需的页面 假设您想从1页转到4页,那么您需要根据您的视图编号设置一个整数变量(在app delegate类中设置为属性)。 然后根据plist推送下一个视图,然后检查所需页面(通过检查“保存在”属性中的页码和当前页码)。如果是,则仍然存在,否则按另一个。(这将完成每页的viewDidLoad) 记得当你得到你想要的页面时,把bool变量设置为NO
要管理页码,请在plist中再添加一项内容,即页码,然后创建逻辑。谢谢。我知道这就是问题所在。如何让页面2加载到中间,这样我才能弹回它?有没有一种方法可以让我提前告诉navigationcontroller它的所有视图控制器?我正在尝试你的方法,但不断得到错误:“试图弹出到一个不存在的视图控制器”。我显示视图1,推送视图2,然后在尝试弹出回视图1时出错。这是因为当我尝试将I init/alloc放入视图的新实例时,我也想弹出视图吗?我应该在我的应用程序代理中创建所有视图吗?好的,问题解决了。我需要在应用程序委托中创建所有视图控制器,并弹出到这些引用。谢谢。很抱歉回复得太晚,但现在你以干净的奉献精神得到了解决方案,所以干杯。