0

我正在使用storyboards. 以下是我的看法

My NavigationController --> [Series of ViewControllers] ->About View Controller

现在从AboutViewController我有

AboutViewController--> ViewController1-->ViewController2-->ViewController3-->ViewController4-->

回到AboutViewController using PUSH SEGUE.

现在假设我是一个用户,我在上面做,然后回到AboutViewController我再次去viewController1等等,viewController4然后循环多次。

我想知道这是否会导致一些内存问题,因为视图放在堆栈上navigationController。如果是这样,应该使用什么策略aboutViewControllerViewController4

4

1 回答 1

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 方法来查看到底发生了什么。这真的很有趣。让我知道这是否没有意义。

PS 请参阅iOS 5教程中的开始故事板了解详细信息。

于 2012-10-03T09:19:12.967 回答