2

我的一个应用程序现在遇到了一个愚蠢的 UI 问题。

我从 UINavigationController 开始,它是我的 Storyboard 中的初始视图控制器。根视图控制器是一个 UIViewController 巫婆一个 UIScrollView 作为子视图。UIScrollView 本身已启用分页并包含多个 UIViewControllers。

现在这是我的问题: UIScrollView 中的 UIViewControllers(我们称之为 View #1)应该对按钮事件做出反应,并与另一个 UIViewController(View #2)进行 segue,该 UIViewController 需要从前一个 UIViewController 获取数据并需要发送委托方法返回的数据。

当我尝试获取 UINavigationController 并在其上推送 View #2 时,没有任何反应。通过 presentViewController 显示它当然可以。

图表

你能帮我一点吗,告诉我这不起作用,什么时候不起作用?我有点卡在这一点上,我不知道如何继续。

4

1 回答 1

2

不要将 UIViewControllers 放在另一个违反苹果开发指南的 UIViewController(至少在 iOs5 之前)中。UIViewControllers 的生命周期是在内部管理的,如果您直接将 UIViewController 添加为子视图,则会有很多方法,例如

viewDidLoad
viewWillAppear
viewDidAppear
。. .

不会被调用,根据我的经验会导致非常不稳定的行为

尝试使用自定义 UIView 对象来获取每个视图的内部逻辑,这在一定程度上打破了 MVC 模式,但这将是解决您的问题的最佳方式

但是 iOS 5.0 添加了包含 UIViewControllers 的容器,它通过添加子视图控制器来正确处理这些生命周期事件。因此,如果您仅针对发布 iOs 5 设备,这可能是解决此问题的好方法

看看这个这个

于 2012-10-18T09:01:04.787 回答