gpt4 book ai didi

ios - Segue Popover 将无法正常运行

转载 作者:行者123 更新时间:2023-11-28 18:43:11 25 4
gpt4 key购买 nike

我正在尝试使用 Segue 呈现然后关闭 Popover View ,点击 UIBarButtonItem

我创建了一个通用的 Segue,它除了 View 之外没有锚定到任何东西,并给它起了一个名字

我已将 Interface Builder 中的 UIBarButtonItem 锚定到:

- (IBAction)clickedSettings:(id)sender {

if(self.popSegue != nil) {
[self.popSegue.popoverController dismissPopoverAnimated:YES];
} else {
//Current says only a button may
[self performSegueWithIdentifier:@"Settings" sender:sender];
}
}

但是当我点击按钮显示 Segue 时,它​​给我一个错误:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“UIStoryboardPopoverSegue 必须从栏按钮项或 View 中呈现。”

它甚至没有命中我的-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

我在堆栈上阅读了以下问题:

  1. > iOS:How to dismiss Popover
  2. > UIBarButtonItem + popover segue creates multiple popovers

但我仍然得到同样的错误。对于我的生活,我无法弄清楚出了什么问题

最佳答案

我对此不以为然,因为我通过多个 StackOverflow 线程获得了它的每一点,但我得到了这个:

@interface MyViewController ()
- (IBAction) toggleSettingsInPopover: (id) sender;
@property (nonatomic, strong) UIStoryboardPopoverSegue *settingsPopoverSegue;
@end

@implementation MyViewController
@synthesize settingsPopoverSegue = _settingsPopoverSegue;

- (IBAction) toggleSettingsInPopover: (id) sender {
if( [self.settingsPopoverSegue.popoverController isPopoverVisible] ) {
[self.settingsPopoverSegue.popoverController dismissPopoverAnimated: YES];
self.settingsPopoverSegue = nil;
} else {
[self performSegueWithIdentifier: @"Settings" sender: sender];
}
}

- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender {
if( [segue.identifier isEqualToString: @"Settings"] ) {
if( [segue isKindOfClass: [UIStoryboardPopoverSegue class]] )
self.settingsPopoverSegue = (UIStoryboardPopoverSegue *) segue;
MySettingsViewController *msvc = segue.destinationViewController;
msvc.delegate = self;
}
}
@end

在我的 Storyboard 中,我通过控制从我的设置栏按钮项拖动到 MyViewController 并将其连接到 toggleSettingsInPopover 操作。然后我从 MyViewController 控制拖动到设置 View 以创建 segue,将其类型设置为 popover,将其标识符设置为 Settings ,将它的方向设置为向上和向左(工具栏在屏幕底部,按钮在右端),然后从它的 Anchor 拖到我连接到操作的栏按钮项目.

关于ios - Segue Popover 将无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8845272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com