【发布时间】:2011-02-13 18:46:37
【问题描述】:
我正在尝试在 iOS 中编写一个多视图应用程序,并且确实遇到了一些困难......我已经设置了一个新项目,并且我有一个 rootViewController 正在由 appDelegate 启动。反过来,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];
}
上面是我的rootViewController viewDidLoad: 方法,虽然每次执行insertSubview,它似乎都回到了顶部,再次执行整个事情。我有点困惑,因为我将这段代码几乎完全基于我遵循的教程并且运行良好......这让我认为问题一定出在其他地方,尽管我想不出在哪里。
欣赏任何见解!
【问题讨论】:
-
你的 rootViewController 不是
TopLevelViewController类型的吗? -
@lxt 不,它是 RootViewController 类型的,尽管我确实想过!
-
你认为为什么会出现无限循环?尝试删除[topLevelController release];行 - 我认为你不应该在那个地方释放控制器......
-
@Vladimir:假设
topLevelViewController属性保留了它,他应该释放它。否则会泄露。 -
您的
topLevelViewController是否会从rootViewController继承?
标签: iphone objective-c xcode ipad ios