【问题标题】:Programmatically calling performSegueWithIdentifier does nothing以编程方式调用 performSegueWithIdentifier 什么都不做
【发布时间】:2014-12-11 04:56:07
【问题描述】:

我的情况与this 帖子完全相同,但无论出于何种原因,我的performSegueWithIdentifier:sender 中只有一个有效。

我有一个视图控制器(嵌入在 UINavigationController 中),有两个按钮,取消和完成。单击时,我希望取消以展开到一个屏幕,并完成以展开到另一个屏幕;但是,这只适用于我设置的两个 segue 之一。

- (IBAction)clickedDone:(id)sender {
    [self performSegueWithIdentifier:@"unwindToHome" sender:self];
}

- (IBAction)clickedCancel:(id)sender {
    [self performSegueWithIdentifier:@"unwindToViewEntries" sender:self];
}

“unwindToHome”工作正常,而“unwindToViewEntries”什么也不做。没有错误,没有打印,什么都没有。如果我切换 segues 和按钮,“unwindToHome”仍然可以工作,而“unwindToViewEntries”什么都不做。

我在两个 ViewController 中都有我想要展开的展开方法,并且按钮上没有附加任何其他操作。

我觉得只有一个有效,这很奇怪。我已经看了好几遍了,我看不出有什么不同。

提前感谢您的帮助。如果还有其他需要检查的地方,请告诉我!

我已经查看了以下帖子的解决方案:

我还尝试过删除转场并重新添加它们,以及删除和重新添加整个视图控制器。每次都是一样的行为。

编辑:我还应该提到,我已经尝试在不同的视图中添加其他 segues,而我添加的新的 segues 都没有工作。只有“unwindToHome”似乎有效,我不知道为什么。

【问题讨论】:

  • 您确定在界面构建器中放置了正确的标识符吗?
  • 是的,检查了几次。甚至尝试重命名它们只是为了看看。没有改变。如果标识符错误,它无论如何都会抛出异常。
  • 你检查self.storyboard的值了吗?
  • 我不太确定在哪里检查,但无论单击 Cancel 还是 Done 都是相同的值。
  • 你将 segue 的源设为视图控制器而不是按钮,我假设......

标签: ios objective-c iphone


【解决方案1】:

在情节提要中确保两个转场都表明它是一个展示(推)转场。之前有一个问题,有点不同,如果你从同一个按钮创建两个 segue,Xcode 设置一个推另一个模态。

编码愉快!

【讨论】:

  • 在这个工作之后,我做了更多的搜索,发现了这个:stackoverflow.com/questions/25654941/…,这可能是相关的。我觉得你应该能够毫无问题地展示你想要作为模型查看的任意数量的 segue。就像我说的我可以做一个,但第二个搞砸了。我现在将它们显示为弹出窗口,现在似乎已经解决了它。感谢您的帮助!
  • 我认为这只是连接 segue 时 xcode 中的一个问题。我猜这是iOS中的一个实际错误。感谢您的链接。很有意思。祝你好运!
猜你喜欢
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多