我正在尝试在 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],导致了这个问题。
关于iphone - - viewDidLoad 无限循环问题...(iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986098/