无法在 IOS8 中使用 showSegue 以编程方式“推送”视图控制器
Posted
技术标签:
【中文标题】无法在 IOS8 中使用 showSegue 以编程方式“推送”视图控制器【英文标题】:Unable to programmatically "push" viewcontroller using showSegue in IOS8 【发布时间】:2014-10-09 03:27:23 【问题描述】:我已经定义了从源 tableview 控制器到另一个的 segue,并尝试使用以下语句在单击 UITableViewCell
时以编程方式转换到目标控制器:
[self performSegueWithIdentifier:@"pushToDestinationViewController" sender:self];
但是,我发现 segue 不会导致“推送”到目标视图控制器。
另一方面,如果我将 segue 连接到源视图控制器中的特定单元格,它就可以工作。
另外,如果我以编程方式调用目标视图控制器:
[self showViewController:DestinationViewController] it works.
如果这是 ios 8 中的一个已知问题,或者我在这里遗漏了什么,有人可以提出建议。
【问题讨论】:
您是否检查过您调用 performSegueWithIdentifier: 的方法是否实际执行了? 【参考方案1】:您的情节提要中有名为pushToDestinationViewController
的segue 吗?您需要先确保在您的 Storyboard 中有这个 segue,如下所示。
或者,如果你只是想简单地推送另一个视图控制器,你可以使用[self.navigationController pushViewController:destinationViewController]
。
【讨论】:
我在 IOS8 中使用自适应视图控制器,不推荐使用 show segue 给定推送。我确实在故事板中命名了segue。问题在于在 tableviewcontroller 级别而不是从 tableview 单元格定义 segue。 @everestman 好的,你确定在 Storyboard segue 中选择了Show (e.g. Push)
吗?我也用表格视图控制器完成了这项工作,效果很好。
我发现了这个问题 - 我在我的类中定义了一个 - performeguewithidentifier 方法,它覆盖了默认行为以推送视图控制器。取出方法现在解决了问题以上是关于无法在 IOS8 中使用 showSegue 以编程方式“推送”视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
TTTAttributedLabel链接检测在iOS8中使用swift无法正常工作