推送segue只能在源控制器由UINavigationController实例管理时使用

时间:2015-08-17 11:41:20

标签: ios objective-c ios7 ios8 uinavigationcontroller

在iOS 7.x(仅限)上,当我拨打[self performSegueWithIdentifier:@"MySegue"]时,selfUINavigationController 时,我会收到以下{{1} }:

  

找不到segue' MySegue'的导航控制器。推   segues只能在源控制器由a管理时使用   UINavigationController的实例。

奇怪的是,在iOS 8.x上它完美无缺!

我看到的关于此异常的每个solution都告诉您将源视图控制器嵌入到UINavigationController中,但在我的情况下NSGenericException 已经一个UINavigationController本身。< / p>

在UINavigationController上调用self是有意义的,而且它在iOS 8上有效,那么iOS 7上的问题是什么?

1 个答案:

答案 0 :(得分:1)

第一反应 - 你是如何设法从$( '#elementb').mousedown (function(){ $(this).mousemove(function(){ $( document ).trigger("mousemove"); }); $( document ).mousemove(function(e){ console.log(e.clientX,e.clientY); $( '#elementa').css({"left":e.clientX,"top":e.clientY}); }); }); 创建一个segue的?在UINavigationController中,您可以创建Storyboard的关系,而不是segue!

好吧,我很惊讶它是否适用于iOS 8.但从概念上讲,你不能要求UINavigationController UINavigationController作为带有推送的segue只是一种要求sourceViewController推送segue的图形方式&# 39; s destinationViewController。

在这种情况下,您是如何告诉performSegueWithIdentifier执行segue的?它没有navigationController,它本身就是!!!

所以我猜如果它在iOS 7上有效,那就是它的错误。

你应该做什么:

在作为segue源的控制器上执行选择器UINavigationController

OR

要求UINavigationController推送您的-performSegueWithIdentifier