eri*_*son 4 iphone xcode objective-c ipad ios
我正在尝试在iOS中编写一个多视图应用程序并且真的有点困难...我已经设置了一个新项目,我有一个由appDelegate启动的rootViewController.反过来,rootViewController尝试加载并显示我的第一个内容视图,虽然我似乎陷入某种无限循环,我希望有人在这里可能有预感为什么...
-(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];
}
Run Code Online (Sandbox Code Playgroud)
上面是我的rootViewController viewDidLoad:方法,虽然每次执行insertSubview时,它似乎都会返回到顶部并再次执行整个操作.我有点困惑,因为我在我所遵循的教程上几乎完全相同地使用了这个代码,它运行得很漂亮......这让我觉得问题必须在其他地方,尽管我不可能想到在哪里.
欣赏任何见解!
Rob*_*Mao 14
我遇到了同样的问题并花费了一段时间来搞清楚.
当self.view不存在时,iOS将调用loadview/viewdidload并尝试创建视图.这导致死循环.在我的情况下,我没有在我的loadView中调用[super loadView],并导致此问题.
请参阅此讨论 http://forums.macrumors.com/showthread.php?t=552520
设置一个断点viewDidLoad,继续几次,然后抓住回溯并发布它.
另外,添加NSLog(@"%@ self is %p", NSStringFromSelector(_cmd), self);到您的开头viewDidLoad.可能是你创建了一种nib文件的"无限镜像"配置; 如果十六进制数不断变化,那将是您视图的不同实例.
| 归档时间: |
|
| 查看次数: |
2859 次 |
| 最近记录: |