我的一个应用程序现在有一个愚蠢的UI问题。
我从一个UINavigationController开始,它是我的Storyboard中的初始视图控制器。 Root视图控制器是UIViewController,UIScrollView是子视图。 UIScrollView本身已启用分页,并包含多个UIViewControllers。
现在我的问题是:UIScrollView中的UIViewControllers(让我们称之为View#1)应该对一个按钮事件作出反应,然后对另一个需要从前一个UIViewController获取数据的UIViewController(View#2)做一个segue。需要通过委托方法发回数据。
当我尝试获取UINavigationController并推送View#2时,没有任何反应。通过presentViewController显示它当然有效。
你可以帮我一点,告诉我这不起作用,什么时候不行?我现在有点陷入困境,我不知道如何继续。
答案 0 :(得分:3)
不要将UIViewControllers放在另一个违反苹果开发指南的UIViewController(至少pre iOs5)中。 UIViewControllers生命周期是内部管理的,如果你直接将UIViewController作为子视图添加很多方法,比如
viewDidLoad中
viewWillAppear中
viewDidAppear
。
。
不会被调用,根据我的经验会导致非常不稳定的行为
尝试使用自定义UIView对象来获取每个视图的内部逻辑 同意这有点打破MVC模式,但这将是解决你的问题的最佳方式
但是iOS 5.0添加了包含UIViewControllers,它通过添加子视图控制器来正确处理这些生命周期事件。因此,如果你只针对iOs 5设备进行定位,这可能是一个很好的方法来解决它