1
black 2014-03-21 00:27:11 +08:00
创建另一storyboard处理登录后的事项,
不要用segue, 因为不同的storyboard之间是不能connect的, 在你的登录成功的地方, 代码加载新的storyboard从而获取新的intialViewController, 将它设置为window的rootViewController即可 |
2
xhacker 2014-03-21 04:31:57 +08:00 1
把登录界面用 modal 弹出来,然后登录完 dismiss。
|
3
chengchao0311 2014-03-21 07:07:41 +08:00 1
我一般用的是@xhacker说的这种方式
|
4
txx 2014-03-21 07:10:45 +08:00 via iPhone 1
除了 navi 都可以吧。。。。。如果项目人多分storyboard 是最好的解决方案。否则modal就行了
|
6
shiweifu 2014-03-21 08:16:02 +08:00
那登出呢?
比如在MainViewController 中跳转了N个页面,然后登出,这时是先回MainViewController 再跳转?还是登录完成的时候回MainViewController? |
7
PrideChung 2014-03-21 08:36:45 +08:00
其实可以考虑用 view controller containment。用一个ViewController作为所有ViewController的容器,就可以很方便地在不同的ViewController之间切换并且自定义过场效果了。
|
8
bighair 2014-03-21 09:27:55 +08:00 via iPad
得看需求吧,未登录可用部分功能是一种。微博这样又另一种,微博未登录任何帐号时的rootVC还是直接登录界面好吧,不然从什么vc来present登录页面?不难看吗?登完才换rootVC吧,保存了token之后以后自动登录才用登录后的根视图控制器做rootVC吧。不过墨客好像是以一个帐户列表为rootVC,登录页面只是中间present出来参与,登录后的根vc是从帐户视图控制器push出来的。
|
9
black 2014-03-21 11:53:38 +08:00 1
假设登录前window的rootViewController是LoginViewController, 那么当你登录成功后, 从另一个storyboard加载新的viewController并将它设置为新的rootViewController后, LoginViewController是会自动释放的.
永远不做"自己干掉自己"的事! |
10
PrideChung 2014-03-21 12:08:55 +08:00 1
好吧,Plan B,我想起来自己有一个应用是这么干的
UIWindow的rootViewController用一个UINavigationController, 里面套着LoginViewController,登录成功后在LoginViewController里面调用[self.navigationController setViewControllers:@[MainViewController] animated:YES] 来替换掉LoginViewController,这样有默认的push动画而且也能够把LoginViewController释放掉。 |
11
krafttuc 2014-03-21 16:12:27 +08:00 via iPhone
我一般是主controller当rootViewController,而loginViewController用来被present
|
12
yourtion 2014-03-21 16:15:21 +08:00 via iPhone
我的做法是在加载过程判断了登录状态,如果未登录就present那个登录的view。
|