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 调用的方法缓慢显示视图