iphone - - viewDidLoad 无限循环问题...(iOS)

标签 iphone objective-c xcode ipad ios

我正在尝试在 iOS 中编写一个多 View 应用程序,但确实遇到了一些困难...我设置了一个新项目,并且我有一个由 appDelegate 启动的 rootViewController。反过来,rootViewController 尝试加载和显示我的第一个内容 View ,尽管我似乎陷入了某种无限循环,但我希望这里有人可能有预感为什么...

    -(void)viewDidLoad
{   
    // Load up new instance of view
    TopLevelViewController *topLevelController = 
    [[TopLevelViewController alloc] initWithNibName:@"TopLevelView" bundle:nil];

    // Hand off viewController reference to root controller
    self.topLevelViewController = topLevelController;

    // Display the view
    [self.view insertSubview:topLevelController.view atIndex:0];

    // Release viewController
    [topLevelController release];


    [super viewDidLoad];
}

上面是我的rootViewController的viewDidLoad:方法,虽然每次执行insertSubview的时候,好像又回到了最上面重新执行一遍。我有点困惑,因为我将这段代码几乎完全相同地基于我所遵循的教程,并且运行得很好……这让我认为问题一定出在其他地方,尽管我想不出在哪里。

感谢任何见解!

最佳答案

我遇到了同样的问题,花了一段时间才弄清楚。

当 self.view 不存在时,iOS 将调用 loadview/viewdidload 并尝试创建 View 。这会导致死循环。在我的例子中,我没有在我的 loadView 中调用 [super loadView],导致了这个问题。

查看此讨论 http://forums.macrumors.com/showthread.php?t=552520

关于iphone - - viewDidLoad 无限循环问题...(iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986098/

相关文章:

ios - 用动画颜色填充 UIView 的一部分

objective-c - 在设备上使用 imageNamed 失败,但在模拟器中有效

ios - 在符号化崩溃报告中识别崩溃

ios - CallKit 扩展开始请求

iphone - 越狱的iOS : how resume(in foreground) from background

iphone - 如何从 iOS 应用程序发送 POST XML?

iphone - 限制输入到UITextField的字符数

ios - imageview 图像填充适合模式

objective-c - NSScrollView 中的滚动条背景不透明

swift - 如何将标签设置为 Float 类型,以便我可以让标签描绘 slider 值(Xcode Swift)