推送循环导航视图控制器

时间:2012-10-03 07:57:14

标签: iphone cocoa-touch ios5 xcode4.2 storyboard

我正在使用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

1 个答案:

答案 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教程了解详细信息。