ios 两个 ViewController 跳转相关问题咨询

2020-09-15 16:48:43 +08:00
 MrLQX

使用 oc 写了两个 ViewController 界面,从 AViewController 跳转到 BViewController 使用了[self presentViewController:bVC animated:YES completion:nil]; 但是我想跳转的同时把 AViewController 销毁掉,使用[self dismissViewControllerAnimated:YES completion:nil];也无法实现,还有什么比较好的方法吗

2246 次点击
所在节点    iOS
37 条回复
codeisjobs
2020-09-15 17:58:21 +08:00
@MrLQX 看你怎么跳的,present 方法的话,不好 dismiss,除非是用 rootviewcontroller 方式跳的
codeisjobs
2020-09-15 18:00:14 +08:00
@MrLQX 推荐你 a 全屏 present b,然后登录完成后,重新设置 rootvc,同时 b 里面 dismiss
Elethom
2020-09-15 18:09:05 +08:00
亲亲,这边建议您转行呢。
isRealLeven
2020-09-15 18:15:03 +08:00
亲亲,这边建议您转行呢。
MrStark
2020-09-15 18:27:48 +08:00
其实你可以把 A 和 B 都作为子控制器放在同一个控制器下进行切换操作的,这样就可以自由操作 A 和 B 的显示与释放了。
MrLQX
2020-09-15 18:43:52 +08:00
感谢各位大佬,我主要是 Android 开发,ios 只是被拉过来写的点东西
sjsurf
2020-09-15 19:35:15 +08:00
你可以考虑把 A 和 B 谁 present 颠倒一下。
sjsurf
2020-09-15 19:37:25 +08:00
刚才理解错误你的需求了。 如果你的需求是 A 或者 B 的关系的话 应该用 subViewController 然后改 view 的转场动画。
yu5121199
2020-09-15 19:38:52 +08:00
亲亲,这边建议您转行呢。
superpeaser
2020-09-15 22:31:19 +08:00
你这样设计就不合理呢,建议你看看主流的 app 关于验证码和密码登录切换的逻辑是怎么设计的…
salor
2020-09-16 00:46:36 +08:00
VC 页面跳转子级不能销毁父级。你可以把两种验证方式作为两个视图,做好动画效果就行了。
vincentxue
2020-09-16 06:29:41 +08:00
你这个是安卓的思维,iOS 的世界不是这样搞。登录注册转主页是一个很常见的逻辑,A present 到 B,在 B 里面完成之后在 dismiss 的同时发个通知把 rootVC 给换掉就行了,这是最简单的做法。这样 B 在 dissmiss 之后就销毁了,A 在 root 被换了之后没有引用也自己销毁了。
Building
2020-09-16 07:30:36 +08:00
将 AVC 作为子控制器添加到主控制器上,就可以 present BVC 后销毁掉 AVC 。
canxden
2020-09-16 08:16:51 +08:00
代码上 b push a,然后不要动画,登录完毕,a diss 要动画就好了…
canxden
2020-09-16 08:20:01 +08:00
如果一定要 a 到 b,再把 b 销毁,就切换 appdelegte 的 windows 的 rootvc,但是 a 和 b 不能是公用一个导航栏…
laucenmi
2020-09-16 09:35:00 +08:00
appDelegate.window?.rootViewController = newVC
oldVC 会自己销毁,直接赋值没动画效果,有需要可以自己加上
MarginK
2020-09-16 11:31:49 +08:00
你从 A present B 当然不可能销毁 A,因为只要 B 的视图层级没变,A 就永远都是 B 的 presentedViewController,你甚至还能从 A.presentedViewController 获取到 B

还有,iOS 就不要去想着手动销毁页面的思维了,如果页面没有自动 dealloc 要么是你对使用的理解不对,要么是该 VC 中有东西释放不掉,请自己检查代码哦。

楼主不想自己实现 present 动画的话,就换一个方式转场吧,楼上说的直接设置 window 的跟视图就是去了些动画,但能满足你的需求

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

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

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

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

© 2021 V2EX