我试图用一个新的来取代我目前的viewController。 我已经能够之前做到这一点,但我有与BAD_ACCESS一些问题。
这是当我想更换一个新的当前视图将运行的代码。
(该功能将使用本地属性“self.some_data”(非原子叫,保留))
-(void) labelSelected:(SomeDataObject*) some_data{
SomeViewController *viewController = (SomeViewController*)[[ClassManager sharedInstance] viewControllerForClassIdentifier:@"com.somename" fromPlistFileName:@"iPhoneScreenList"];
viewController.data = (NSObject*)some_data;
[some_data retain];
//[self.navigationController pushViewController:viewController animated:YES];
UINavigationController *tempNavigationController = self.navigationController;
[[self retain] autorelease];
[tempNavigationController popViewControllerAnimated:FALSE];
[tempNavigationController pushViewController:viewController animated:TRUE];
}
这里一切正常。 问题是,如果我发布了新的“的viewController”崩溃。 如果我选择:
[tempNavigationController popViewControllerAnimated:TRUE];
我得到了一些非常奇怪的行为,其中控制器永远不会取代我回到rootController和导航栏上有两个文本层。
如果我这样做:
[tempNavigationController pushViewController:viewController animated:FALSE];
我得到BAD_ACCESS和应用chrashes。 这之前,但没有奏效了。
我究竟做错了什么?
谢谢!