OGeek|极客世界-中国程序员成长平台

标题: ios - 在 iOS 9 上关闭 segue 创建的 Popover [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:57
标题: ios - 在 iOS 9 上关闭 segue 创建的 Popover

Stack Overflow 上有很多关于此的问题和答案,但它们仅适用于 iOS 8 及之前的版本。

iOS 9 弃用了很多东西,所以关于 SO 的答案不再有效。

也就是说,我通过执行这样的 segue 来呈现一个弹出框

[self performSegueWithIdentifier"myPopover" sender:self];

这个 segue 在当前 viewController 和 popover 使用的 viewController 之间创建。不涉及任何按钮。弹出框被锚定到一个 View 。

问题在于 prepareForSegue:identifier

[segue destinationViewController]

是一个UIViewController

[[segue destinationViewController] popoverPresentationController]

是新的UIPopoverPresentationController,这个对象不再提供dismiss api。

相反,我们应该使用

[self dismissViewControllerAnimated:YES completion:nil];

关闭弹出框,但这对我没有影响。

我的情况是这样的:我有一个带有文本字段的弹出框。如果用户隐藏键盘,我想关闭弹出框。

所以我这样做了:

[[NSNotificationCenter defaultCenter] addObserver:self selectorselector(keyboardWillHide name:UIKeyboardWillHideNotification object:nil];

然后

- (void)keyboardWillHideNSNotification *)notification {
  [self dismissViewControllerAnimated:YES completion:nil];
}

但这根本没有效果。

我还尝试在 popover viewController 中创建一个 unwind segue 并从呈现 View Controller 中调用它,但这会使应用程序崩溃。



Best Answer-推荐答案


刚刚试了一下,似乎一切正常。

关于ios - 在 iOS 9 上关闭 segue 创建的 Popover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34176715/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4