作者KKFN (Marshall)
看板MacDev
标题[问题] UINavigationController传值问题
时间Tue Jun 9 11:09:58 2015
各位版上前辈好,
目前正在试着学习iOS的开发,
使用语言是Objective-c
因为全部都是自学,
也不知道如果有关於iOS元件的问题应该要参考哪一本书,
而这个问题又卡了我很久...
所以我才拿出来这边提问..
UINavigationController
|
V
MainList(UIViewController)
|
V
LogIn (UIViewController)
目前的画面是这样,用StoryBorad拉出来的。
MainList是UINavigationController的RootViewController
现在的情况是我LogIn画面登入後
我想要把值传给MainList
一开始想到的是prepareForSegue,
所以我就直接把LogIn画面上的登入按钮拉Segue到MainList
但是如果我用Show的方式将画面换到MainList
那回到MainList时上面的NavigationBar就会有"返回Login"的按钮
但是这跟逻辑不符
你不可能登入後、回到主画面,还提供人一个回到Login的按钮啊
所以我改用其他的,
像是Present Modally或是Show Detail等等,
但是这样上面的NavigationBar又会在回到MainList後消失...
後来研究一下
发现如果我用Present Modally将Segue从Login指到UINavigationController了话
就能成功进入MainList画面而且NavigationBar不会消失
但是这样了话就没有办法使用prepareForSegue将值传到MainList...
想请问如果这样的情况
我要用什麽功能才能把LogIn的值传到MainList
并保有NavigationBar且不会出现"返回Login"的按钮呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.17.9.220
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1433819401.A.EBA.html
1F:→ stweber2001: 可以hideBackButton 06/09 11:12
2F:→ stweber2001: 还有记得取消手势,不然一样有办法返回 06/09 11:13
3F:→ tom19830924: 你不能一直用push/show navigation是stack架构 06/09 18:24
4F:→ tom19830924: 你这样到时候要pop可能会出问题 06/09 18:24
5F:→ tom19830924: 建议你 登入画面这种 使用present modally 06/09 18:25
6F:→ tom19830924: 并且去找一找delegate&protocol相关用法 06/09 18:26
7F:→ Esvent: 你是想要登入之後 把Login页面pop掉 然後把资料传回来? 06/09 21:10
8F:→ Esvent: 如果不确定是谁要接的话 可以试试NSNotificationCenter 06/09 21:12
9F:→ Esvent: 或是楼上提的delegate 06/09 21:13
10F:→ Esvent: 但如果你确定他一定是rootVC, 那你也可以直接用抓rootVC 06/09 21:14
11F:→ Esvent: 强制转型 然後把资料塞给他就好 (偷懒的方法 06/09 21:16