iPhone应用程序的信息视图问题

时间:2010-08-29 04:50:06

标签: iphone objective-c xcode

我目前正在使用此代码显示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方法的按钮时,它执行动画,但一旦它完全离开屏幕,只有我的主视图可见,屏幕将闪烁,再次快速显示信息视图。我该如何解决这个问题?

1 个答案:

答案 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;