我正在使用storyboards
。
这是我的观点
My NavigationController --> [Series of ViewControllers] ->About View Controller
现在来自AboutViewController
我有
AboutViewController--> ViewController1-->ViewController2-->ViewController3-->ViewController4-->
回到AboutViewController using PUSH SEGUE
。
现在假设我是一名用户而且我在上面回到AboutViewController
之后再次转到viewController1
,依此类推至viewController4
并进行多次循环。
我想知道这是否会导致一些内存问题,因为视图放在navigationController
的堆栈上。如果是,那么应使用什么策略从aboutViewController
ViewController4
答案 0 :(得分:0)
不,它不会产生任何内存问题。 iOS会照顾你。当它呈现另一个视图时,如果您没有强引用循环(在子视图控制器中始终对父项具有弱引用),则会自动取消分配先前视图。您可以尝试在每个视图控制器中添加如下所示的initWithCoder和dealloc方法,看看会发生什么。
- (id)initWithCoder:(NSCoder *)aDecoder
{
if ((self = [super initWithCoder:aDecoder]))
{
NSLog(@"init ViewController");
}
return self;
}
- (void)dealloc
{
NSLog(@"dealloc ViewController");
}
还要添加viewDidAppear - ViewDidDisappear方法,以确切了解发生了什么。这真的很有趣。如果这没有意义,请告诉我。
请参阅Beginning Storyboards in iOS 5教程了解详细信息。