Storyboard 的 Push Segue 问题

2014-03-11 22:03:58 +08:00
 austinchou0126
假如我有一个ViewController为MainVC,MainVC里两个按钮分别Trigger了两个Push Segue,Push到一个含有WebView的WebViewVC。两个Segue对应不同的Request地址。
我想做到假如WebView载入了某些地址,那么自动Pop回MainVC,MainVC embedded in NavigationController。
WebViewVC property如下
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) UINavigationController *source;
source属性在MainVC的prepareForSegue时指向MainVC
WebViewVC收到didFinish事件后判断,然后[self.source.navigationController popViewControllerAnimated: YES]
结果:
第一次成功,第二次失败,错误提示:
nested pop animation can result in corrupted navigation bar
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

于是我改成了[self dismissViewControllerAnimated:YES completion:nil],根本没有反应。
请问大家应该怎么解决?
3984 次点击
所在节点    iDev
7 条回复
austinchou0126
2014-03-11 22:04:36 +08:00
再不行我就只能不用Storyboard的Segue,直接代码手写push了。
offspring
2014-03-11 22:14:13 +08:00
@austinchou0126 你直接[self.navigationController popViewControllerAnimated:YES]不就好了么 你到上层去pop干啥...
austinchou0126
2014-03-11 22:15:09 +08:00
@offspring 同样的问题,所以才想到去上层pop
offspring
2014-03-11 22:20:01 +08:00
@austinchou0126 除非你别的地方写的有问题 要不然是不会pop不了的 错误信息就是说你pop了两次 再好好看看自己写的吧 在webviewVC里直接pop肯定可以的
austinchou0126
2014-03-11 22:43:22 +08:00
@offspring 好,我明天再看看
austinchou0126
2014-03-12 12:50:51 +08:00
allenhsu
2014-03-12 16:42:59 +08:00
为什么在 viewDidLoad 里直接 pop 了?viewDidLoad 的时候 view 还未 appear,即 push 的 animation 未结束,不能 pop。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/103877

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX