如何在从同一个 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];
}