模态表单中的关闭按钮

问题描述:

在Objective C中(可可)我有一个应用程序与模态表单运行,但我想要允许应用程序退出,即使表单显示(与我认为的模式的定义相矛盾,但我就像模态表的动画效果一样)。模态表单中的关闭按钮

我已经使用-setPreventsApplicationTerminationWhenModal方法,它工作正常,但我想知道...有什么办法保持关闭按钮启用?小圆圈通常是与左上角的所有窗口一起出现的红色关闭按钮(并排放置,最小化和最大化)?现在,它在表单运行时完全禁用,如果有方法启用它,那将是非常棒的。

谢谢!

+0

只要模态窗口附加到父窗口,父窗口可能不是一个活动窗口。所以,只是检查出来。 – boom 2010-04-07 09:20:43

+0

@iSight:真的...我是新可可,所以我不得不问:你是什么意思的“检查出来”?只是以普通的日常意义来检查它,或者在它背后有程序意义吗? – Vervious 2010-04-07 16:10:57

+0

@ Nano8Blazex就我的知识而言,模式窗口附加到父窗口,模态窗口变成关键窗口,直到它从关键窗口退出,父窗口永远不会成为关键窗口,而且我找不到你需要的这种用法,直到现在。调用另一个窗口模态窗口。 – boom 2010-04-08 04:02:59

使用委托方法关闭模态视图。你宣布你的模式视图控制器上的委托和委托方法驳回ModalViewController

在模态视图控制器接口文件:

@protocol MyViewControllerDelegate 
-(void)dismissModal; 
@end 

然后声明委托在模态视图控制器类属性:

@property (nonatomic, retain) id <MyViewControllerDelegate> delegate; 

现在,声明父视图控制器作为一个适当的委托执行者的模态视图控制器:

@interface MyParentViewController:UIViewController中

然后在调用(父)的ViewController实现委托方法在实现文件:

-(void)dismissModal 
{ 
    // Dismiss the Modal ViewController that we instantiated earlier 
    [self dismissModalViewControllerAnimated:YES]; 
} 

应该这样做。建议的处理方法是通过委托方法(并且委托方法非常方便,以便在一个控制器中的进程需要在另一个控制器中启动一个方法时使用)。熟悉使用委托来完成工作是非常值得的在对象C