【发布时间】:2014-08-28 07:32:37
【问题描述】:
作为过去通常使用单独的 xib 的人,我想我应该尝试一下故事板,因为它似乎更易于使用且更易于开发。我一直在编写一个应用程序,其中基本设置是这样的:
最重要的是 UINavigationController(第一级)。然后我有多个带有按钮的 UIViewControllers(第二级),您可以点击这些按钮在第二级 UIViewControllers 之间切换。
但是,当我开始在第二级 UIViewController 之间切换时会出现问题。我首先认为这是 NSMutableArrays 的初始化问题,因为在我的代码中,我有一个 NSTimer 设置为定期循环,当我在其中设置断点时发现,当我前进到下一个计时器滴答事件时,似乎有不同的实例相同的 NSMutableArrays,尝试将新值插入这些数组似乎是一场赌博,有时它可以工作,有时不能(因为它可能会或可能不会插入到正确的实例中)。
然后,查看 Debug Navigator 下的内存使用情况,我发现了问题。 每次我在 UIViewController 之间“切换”时,都会启动一个新的 UIViewController 以及所有新变量。
我用来在它们之间切换的代码是
-(void) perform {
[[[self sourceViewController] navigationController] pushViewController:[self destinationViewController] animated:NO];
}
或者本质上是一个 push segue 转换。这也解释了为什么当我尝试切换回我的视图时,该视图上的数据丢失了,因为它是一个全新的视图。
有谁知道如何在这些 UIViewController 中的多个(比如 5 个)之间切换,基本上就像 UITabViewController 一样,除了没有标签栏吗?
【问题讨论】:
-
当你在 NavigationController 中推送一个 VC 时,VC 会初始化,所以它对应的所有视图也会初始化。还有你的问题不清楚,说清楚。
标签: ios objective-c uiviewcontroller storyboard segue