模态表期间关闭按钮

时间:2010-04-06 04:16:59

标签: objective-c cocoa macos

在Objective C(Cocoa)中,我有一个使用模态表运行的应用程序,但是我想允许应用程序在表单显示时退出(与我认为的模态定义相矛盾,但我喜欢动画效果莫代尔表。)

我已经在使用-setPreventsApplicationTerminationWhenModal方法并且它工作正常,但我想知道......有没有办法让关闭按钮保持启用状态?小圆圈通常是红色的关闭按钮,左上角的所有窗口都带有(并排最小化和最大化)?现在它在工作表运行时被完全禁用,如果有办法启用它会很棒。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用委托方法关闭模态视图。您在模态视图控制器上声明委托,该委托方法解除了ModalViewController

在Modal ViewController接口文件中:

@protocol MyViewControllerDelegate
-(void)dismissModal;
@end

然后将委托声明为Modal ViewController中的类属性:

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

现在,将您的父ViewController声明为Modal ViewController的正确委托实现者:

@interface MyParentViewController:UIViewController      

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

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

应该这样做。处理这个问题的建议方法是通过委托方法(当一个控制器中的进程需要在另一个控制器中触发方法时,委托方法非常方便使用。非常值得花时间熟悉使用委托来完成工作在Obj C