我目前正在使用此代码显示iPhone应用的信息视图。
-(IBAction)showInfo:(id)sender {
InfoView *info = [[InfoView alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
info.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentModalViewController:info animated:YES];
[info release];
}
此代码返回到我的主视图
-(IBAction) exitInfo:(id)sender {
[self.parentViewController dismissModalViewControllerAnimated: YES];
}
当我在模拟器上运行时,它很好,但是,在实际的iPhone上,当我按下触发exitInfo方法的按钮时,它执行动画,但一旦它完全离开屏幕,只有我的主视图可见,屏幕将闪烁,再次快速显示信息视图。我该如何解决这个问题?
答案 0 :(得分:0)
在我看来,你的viewController甚至不应该知道它是以模态方式查看的。
尝试将发送dismissModalViewController消息的代码放在主控制器中,并提醒主控制器用户使用委托点击了解除按钮。
在你的“父”viewController 中有类似的东西-(IBAction)showInfo:(id)sender {
InfoView *info = [[InfoView alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
info.modalTransitionStyle = UIModalTransitionStylePartialCurl;
info.delegate = self;
[self presentModalViewController:info animated:YES];
[info release];
}
-(IBAction)closedButtonClicked {
[self dismissModalViewControllerAnimated: YES];
}
并在你的“模态”viewController
中-(IBAction) exitInfo:(id)sender {
[delegate closedButtonClicked];
}
当然你需要一个像
这样的协议@protocol MyCustomDelegate
-(IBAction)closedButtonClicked;
@end
在你的“模态”界面中有类似的东西
-id<MyCustomDelegate> delegate;