如何在从同一个 UIButton 关闭 sheetViewController 之前执行 IBAction?
How to perform IBAction before dismiss sheetViewController from same UIButton?
我正在 Objective-C 中编写一个 Cocoa Mac 应用程序并为我的 UI 使用故事板。
我的 sheetViewController.m 中有一个 "Confirm" 按钮,我想执行一些操作(保存一些设置)并关闭 sheetViewController同时。他们都使用 sheetViewController.m 作为出口。
不幸的是,对于 Storyboard,我只能选择一个接收到的动作 (IBAction) 或 dismissController。
我想先执行 IBAction,然后再关闭 sheet。我怎样才能做到这一点?
如有必要,很高兴在代码中代替 Storyboard 执行此操作!
谢谢!
您可以在 IBAction 中使用代码关闭控制器。
我发现了如何在代码中引用 Storyboard ID:
在 MainViewController 上:
- (IBAction)didClickButton:(NSButton *)sender {
SheetViewController *sheetViewController = [self.storyboard instantiateControllerWithIdentifier:@"SheetViewController"];
// Must match Storyboard ID
[self presentViewControllerAsSheet:sheetViewController];
}
在 SheetViewController 上:
- (IBAction)didClickButton:(NSButton *)button {
// Do something
[self dismissViewController:self];
}
我正在 Objective-C 中编写一个 Cocoa Mac 应用程序并为我的 UI 使用故事板。
我的 sheetViewController.m 中有一个 "Confirm" 按钮,我想执行一些操作(保存一些设置)并关闭 sheetViewController同时。他们都使用 sheetViewController.m 作为出口。
不幸的是,对于 Storyboard,我只能选择一个接收到的动作 (IBAction) 或 dismissController。
我想先执行 IBAction,然后再关闭 sheet。我怎样才能做到这一点?
如有必要,很高兴在代码中代替 Storyboard 执行此操作!
谢谢!
您可以在 IBAction 中使用代码关闭控制器。
我发现了如何在代码中引用 Storyboard ID:
在 MainViewController 上:
- (IBAction)didClickButton:(NSButton *)sender {
SheetViewController *sheetViewController = [self.storyboard instantiateControllerWithIdentifier:@"SheetViewController"];
// Must match Storyboard ID
[self presentViewControllerAsSheet:sheetViewController];
}
在 SheetViewController 上:
- (IBAction)didClickButton:(NSButton *)button {
// Do something
[self dismissViewController:self];
}