performSegueWithIdentifier 出现运行时错误,为啥?

Posted

技术标签:

【中文标题】performSegueWithIdentifier 出现运行时错误,为啥?【英文标题】:performSegueWithIdentifier is giving runtime error, why?performSegueWithIdentifier 出现运行时错误,为什么? 【发布时间】:2014-05-31 05:36:49 【问题描述】:

我有一个带有 containerView 的 ViewController,而 ContainerViewController 有一个模态 segue 到另一个 ViewController。我的 segue 标识符为“embedConverter”,现在当调用 ContainerViewController 的 viewDidLoad 方法时,我有以下命令:

- (void)viewDidLoad 

    [super viewDidLoad];
    [self performSegueWithIdentifier:@"embedConverter" sender:nil];

调用 performSegueWithIdentifier:sender: 方法时出现运行时错误。我刚刚开始学习使用这种方法,所以我不确定是什么导致了这种情况发生。非常感谢任何见解。

这是错误:

libc++abi.dylib:以未捕获的类型异常终止 NSException

是的,我希望它立即转场,我也会有其他转场,但现在我只有一个。

- (void)viewDidLoad 
    [super viewDidLoad];
    [self.containerViewController performSegueWithIdentifier:@"embedConverter" sender:nil];

这是我的主 ViewController 的 viewDidLoad。 containerViewController 是嵌入在 ContainerView 中的视图。

【问题讨论】:

你能发布错误吗? 您确实意识到,根据您的代码,在您的视图控制器中,当它加载时基本上会立即进行 segue? 请发布错误日志,以便我们清楚地了解发生了什么问题。谢谢。 两件事。 1、为什么不直接拨打embedConverter? 2. 它不是 segue 问题,我猜你在 ViewController 中使用了一些 c++ 库,你从 segue 中调用它会给出运行时错误。 我同意@Goppinath 的回答。我还建议将代码的 nil 部分更改为 self.所以,[self performSegue...sender:self];我怀疑它会做任何事情,但它没有伤害 【参考方案1】:

解决方案:我强烈建议您搬家,

[self performSegueWithIdentifier:@"embedConverter" sender:nil];

你的代码的一部分到 UIVIewController 的

- (void)viewDidAppear:(BOOL)animated

希望对你有帮助

原因:我无法准确解释原因,但您必须先让 UIViewController 完全加载,然后才能触发额外的导航或演示。

【讨论】:

刚试过这个,并没有解决问题,我把我用过的代码贴出来。 哦,对不起,我把它读作 viewDidLoad。我以前也尝试过,我会更改代码以反映这一点。 嗯...在我尝试之前它给了我同样的错误,但现在我再次尝试它并且它正在工作,感谢您的帮助。

以上是关于performSegueWithIdentifier 出现运行时错误,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

performSegueWithIdentifier 出现运行时错误,为啥?

iOS8 performSegueWithIdentifier 运行太慢

performSegueWithIdentifier:sender: 找不到我的转场

unwind segue / performSegueWithIdentifier: 问题

performSegueWithIdentifier 不起作用

performSegueWithIdentifier:从 didSelectRowAtIIndexPath 调用的方法缓慢显示视图