iOS 开发问题: storyboard 创建一个登录页面作为 initial view controller,登录验证成功后应该用什么方式去主界面(mainViewController).

2014-03-20 22:46:16 +08:00
 democ
现在我是用默认的 modal 方式的segue, 这样的方式应该是不对的,请问大家是怎么做的. 谢谢了.
15066 次点击
所在节点    iDev
12 条回复
black
2014-03-21 00:27:11 +08:00
创建另一storyboard处理登录后的事项,
不要用segue, 因为不同的storyboard之间是不能connect的,
在你的登录成功的地方, 代码加载新的storyboard从而获取新的intialViewController, 将它设置为window的rootViewController即可
xhacker
2014-03-21 04:31:57 +08:00
把登录界面用 modal 弹出来,然后登录完 dismiss。
chengchao0311
2014-03-21 07:07:41 +08:00
我一般用的是@xhacker说的这种方式
txx
2014-03-21 07:10:45 +08:00
除了 navi 都可以吧。。。。。如果项目人多分storyboard 是最好的解决方案。否则modal就行了
alexrezit
2014-03-21 07:30:31 +08:00
@txx
应该是 main 作为 root, 然后 present 验证页, 验证后再 dismiss 是么?
shiweifu
2014-03-21 08:16:02 +08:00
那登出呢?
比如在MainViewController 中跳转了N个页面,然后登出,这时是先回MainViewController 再跳转?还是登录完成的时候回MainViewController?
PrideChung
2014-03-21 08:36:45 +08:00
其实可以考虑用 view controller containment。用一个ViewController作为所有ViewController的容器,就可以很方便地在不同的ViewController之间切换并且自定义过场效果了。
bighair
2014-03-21 09:27:55 +08:00
得看需求吧,未登录可用部分功能是一种。微博这样又另一种,微博未登录任何帐号时的rootVC还是直接登录界面好吧,不然从什么vc来present登录页面?不难看吗?登完才换rootVC吧,保存了token之后以后自动登录才用登录后的根视图控制器做rootVC吧。不过墨客好像是以一个帐户列表为rootVC,登录页面只是中间present出来参与,登录后的根vc是从帐户视图控制器push出来的。
black
2014-03-21 11:53:38 +08:00
假设登录前window的rootViewController是LoginViewController, 那么当你登录成功后, 从另一个storyboard加载新的viewController并将它设置为新的rootViewController后, LoginViewController是会自动释放的.

永远不做"自己干掉自己"的事!
PrideChung
2014-03-21 12:08:55 +08:00
好吧,Plan B,我想起来自己有一个应用是这么干的

UIWindow的rootViewController用一个UINavigationController, 里面套着LoginViewController,登录成功后在LoginViewController里面调用[self.navigationController setViewControllers:@[MainViewController] animated:YES] 来替换掉LoginViewController,这样有默认的push动画而且也能够把LoginViewController释放掉。
krafttuc
2014-03-21 16:12:27 +08:00
我一般是主controller当rootViewController,而loginViewController用来被present
yourtion
2014-03-21 16:15:21 +08:00
我的做法是在加载过程判断了登录状态,如果未登录就present那个登录的view。

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

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

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

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

© 2021 V2EX