【问题标题】:Popover segue not working弹出框segue不起作用
【发布时间】:2014-05-25 04:23:10
【问题描述】:

我正在使用情节提要开发一个 iPad 应用程序。在我的应用程序中,我有 2 个视图控制器(第一个视图控制器和模态视图控制器)。在我的第一个视图控制器中,我有一个表格视图,其中包含一个按钮的单元格。如果我单击每个单元格中的按钮,我需要转到模态视图控制器。我使用 segue 连接了模态视图控制器和按钮。当样式为模态但我需要样式 Popover 时,Segue 工作得很好。当我尝试更改 segue 样式弹出框时,会发生情节提要错误并且编译失败。我该如何解决这个问题。

【问题讨论】:

  • 您能否提供您收到的错误消息的详细信息?你在为你的 UITableView 使用原型单元格吗?如果是这样,那么这很可能是您的问题 - 您无法从原型对象启动 segue。您将需要为您的按钮实现一个事件处理程序并以编程方式触发您的 segue
  • Storyboard_iPad.storyboard: 无法编译连接: <0x7faf954540e0>

标签: ios objective-c ipad uitableview storyboard


【解决方案1】:

按照图片中的步骤操作。希望能帮到你。

【讨论】:

  • 感谢您的帮助。编译错误已解决,但我的应用程序在应用程序运行时突然退出显示错误**由于未捕获的异常 'NSUnknownKeyException' 导致应用程序终止,原因:'[ setValue:forUndefinedKey:]: 这个类不符合键 segueButton 的键值编码。'
  • 好的,您正在使用 Segue Identifier 作为“segueButton”,并且您应该在情节提要中为您连接的 segue 提供相同的标识符
  • keshav:- stackoverflow.com/questions/23211126/… 我发布了一个问题。请你帮我解决这个问题...
  • 我再提一个问题,请帮我解决这个问题....stackoverflow.com/questions/23802117/…?
【解决方案2】:

如果错误是“无法编译连接...”,则问题是 XCode 如何处理动态表格单元格视图中的插座。

我建议你 2 选择:

1) 如果您可以使用“静态”表视图,则不会出现错误,这样表视图必须位于 UITableViewController 中。

2) 如果您需要动态表格,请将单元格视图子类化并在您的类中(比如 MyUITableCellView)放置一个插座:

@property (weak, nonatomic) IBOutlet UIButton *segueButton;

然后在你的故事板中创建一个从原型单元(MyUITableCellView 类)到单元内按钮的出口(不要在故事板中创建转场,只创建目标视图控制器)。

然后在“cellForRowAtIndexPath”中执行以下操作:

MyUITableCellView *cell = (MyUITableCellView*)[tableView dequeueReusableCellWithIdentifier:@"MyCell"];
/* IMP: Here you should check if button has already this action (reused) */
[cell.segueButton addTarget:self action:@selector(showPopover:) forControlEvents:UIControlEventTouchUpInside];

然后添加动作:

- (void)showPopover:(UIButton*)sender
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *secondVC = [storyboard instantiateViewControllerWithIdentifier:@"secondVC"];  // this is the storyboard id
    self.popover = [[UIPopoverController alloc] initWithContentViewController:secondVC];
    CGRect fromRect = [self.view convertRect:sender.frame fromView:sender.superview];
    [self.popover presentPopoverFromRect:fromRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

希望这有帮助。

【讨论】:

  • 提示:您可以在(强)属性中维护它并在每次点击按钮时简单地重新配置它,而不是每次都重新实例化第二个视图控制器(但这只是一个实现选择) .
【解决方案3】:

您是否包含&lt;UIPopoverControllerDelegate&gt; 并实施了它?第一次很容易忘记。

【讨论】:

    【解决方案4】:

    可能你没有连接 Anchor,把 UIView 放在你的 Viewcontroller 视图中某个背景颜色清晰的地方,并将 Segue 的 Anchor 点设置为那个视图.....

    【讨论】:

    • Storyboard_iPad.storyboard: 无法编译连接: <0x7faf954540e0>
    猜你喜欢
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多