我的应用是基于浏览的应用。 我有3个viewcontrollers。 (主,次,细节) 每个viewcontroller都有一个UIView。 在MainViewcontroller中,有一个启动subView的按钮。 方法如下。
- (IBAction)LaunchSubView:(id)sender {
subViewcontroller *viewController = [[subViewcontroller alloc] init];
UIView *currentView = self.view;
[UIView transitionFromView:currentView
toView:viewController.view
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromLeft
completion:^(BOOL finished){}];
}
当我尝试构建和分析时,我收到了这个警告。 第54行分配的对象的潜在泄漏并存储在'viewController'中 我在transitionFromView方法和subViewcontroller * viewController = [[[subViewcontroller alloc] init] autorelease]之后尝试了[viewController release];两种方式都会导致应用崩溃。知道我想做什么吗?提前感谢任何帮助。 =)
答案 0 :(得分:1)
transitionFromView:toView:duration:options:completion:
不是正确的使用方法。您应该使用presentModalViewController:animated:
。
如果您阅读transitionFromView:toView:duration:options:completion:
的文档,则说明:
此方法仅修改视图层次结构中的视图。它不会以任何方式修改应用程序的视图控制器。例如,如果使用此方法更改视图控制器显示的根视图,则您有责任相应地更新视图控制器以处理更改。“
答案 1 :(得分:0)
尝试使用
subViewcontroller *viewController = [[subViewcontroller alloc] initWithNibName:@"name of you nib file" bundle:@"if you have a bundle otherwise nil"]
并在方法结束之前释放viewController对象 像这样
[subViewcontroller release];