【发布时间】:2012-02-19 12:10:33
【问题描述】:
我已经阅读了很多关于这个问题的问题,但我仍然找不到解决这个问题的合适方法。我有一个在启动画面上启动的新闻应用程序(获取新闻提要并缓存它们),然后它切换到主屏幕,这是新闻文章的混搭。您可以通过单击文章、部分、画廊、视频等从该屏幕导航到许多其他屏幕......我有一个固定的页眉和页脚,我决定将主 UIViewController 子类化并将它们放在上面(我会在我的其他 UIViewControllers 中继承这个 UIViewController)
我了解到,最好的方法是让多个视图控制器分别控制我的应用程序的特定部分。但是,我仍然对如何正确和负责任地在这些之间进行切换感到有些困惑。我尝试了故事板转场,但遇到了两个问题:
- 我需要创建很多转场,因为您几乎可以从 任何屏幕到任何其他屏幕
- 一旦你跳转到另一个,segues 将不会保留 UIViewController 的状态,一旦你返回它就会重置为它的状态 初始状态。
我还阅读了有关 presentModalViewController 的信息,您可以使用它将视图作为模式推送到当前控制器之上。但是,您需要经常这样做,而且我有点担心内存消耗问题。
在没有应用程序视图层次结构的情况下创建多视图应用程序的最佳方法是什么(UINavigationController/UITabController/etc...) 通常我想在开始时声明我的所有视图控制器,然后根据需要在它们之间切换(当我第一次需要一个视图时,我会对其进行初始化)有人尝试过类似的东西吗?
非常感谢。
编辑:感谢您的回复,我出去观看了有关 UIViewController 遏制的 WwDC 会议,这有助于我了解如何实现自定义 UIViewController 容器。但是还是有一些我无法理解的东西。
当我创建一个自定义 UIViewController 容器时,我需要使用 addChildViewController 向它添加子容器,这将在我的子 UIViewController 上触发 willMoveToParentController 事件。
然后我使用 [self.view addSubview...] 将子控制器子视图添加到容器视图中,但这只会加载视图并且不会将它们链接到我在子 UIViewController 中创建的事件。
我应该使用 addSubview 以外的其他东西吗?还是应该使用单独的 UIView 类来连接我的事件?
【问题讨论】:
-
请查看我对这个问题的回答stackoverflow.com/questions/9318232 .. 它可能对您有所帮助。
-
谢谢Malek,在这种情况下我该如何处理过渡?
-
例如..
UIViewController *vc = [appDelegate.controllersArr objectAtIndex:0] vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
标签: objective-c ios uiviewcontroller