2014-09-25 53 views
2

我有一個嵌入在UINavigationController中的UIViewController sublcass(VC1)。 VC1觸發模式繼承到另一個UIViewController子類(VC2),該子類嵌入在它自己的,不同的UINavigationController中。內部由VC2的導航欄中的UIBarButtonItem觸發的操作方法,我稱之爲模態提出的視圖控制器不能展開

[self performSegueWithIdentifier:@"SomeString" sender:nil]

相當於內部VC1一個展開的方法。出於某種原因,轉換不會發生。

它只是成爲切換到XCode 6後的問題。它在Xcode 5中運行良好。任何想法?

回答

1

這個問題一直在做,我有完全相同的問題。不幸的是,還沒有好的解決方案,除了回到舊的delegate模式。

如果您繼承了父視圖控制器導航控制器並實現了- (UIViewController*)viewControllerForUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender,您將會看到模態實際上是在導航控制器上查找unwindSegue方法,而不是顯示模態的視圖控制器。

如果你有一個容器視圖控制器,因爲上面的方法一直被調用到故事板的初始視圖控制器的控制器鏈上,問題會變得更加嚴重。

這裏有一個潛在的解決方法Unwind Segue not working in iOS 8,但它也有其缺點和副作用。