作者redok (火焰)
看板MacDev
标题[问题] present to many view controllers
时间Wed Jan 8 11:15:23 2014
想请问各位一个程式呼叫流程的问题
例如: facebook ios app
一开始全新的用户会从主页到登入页面
再进入到设定资料页面
再从设定资料页面进入其它设定页面 ...(以此类推很多页面)
那这样的不就一直
present view controller 很多次造成如下的情况
(虚线箭头表示 [presentViewController: animated: completion:])
主要页面---> 登入页面 ---> 设定页面1 ---> ... ---> 设定页面n -->注册完毕页面
a b c n z
好不容易注册完毕後那我就要写如下的程式码回到主要页面
定义 x^y = [viewControllerX dismissViewController: animated: comletion:^{
[viewControllerY dismissViewController ...]
}];
写成:
a^(b^(c^(...^(n^(z)))))
才会回到原本的主要页面吗? (就是 presentVC好几次後,才一次全部dismissVC)
这样是正常的吗?
我个人是比较想要写成 (即换页就dismiss该页面,再present新页面)
主要页面 ----> present 登入页面 ----> dismiss 登入页面
----> 设定页面1 ----> dismiss 设定页面1
.........
----> 注册完毕页面 ----> dismiss 注册页面 (此时会到登入页面)
可是不知道要怎麽写? orz
也想请问大家都怎麽处理这种东西?
感恩看完那麽长的叙述,谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 116.89.131.241
※ 编辑: redok 来自: 116.89.131.241 (01/08 11:16)
1F:推 kiii210:popToRootViewController? 01/08 11:29
2F:→ howdiun:小改的话,把登入页传给子页面,注册完後[登入页 dismiss] 01/08 11:39
3F:→ redok:1f说的应该是使用 navigation的方式@@ 01/08 12:56
4F:→ redok:2f的意思是说 将最前面的登入页dismiss的话 其它後面present 01/08 12:57
5F:→ redok:的页面 也会自动被dismiss? 01/08 12:57
原文"calling this method on a view controller lower in the stack dismisses its
immediate child view controller and all view controllers above that child on
the stack"
阿..所以直接传登入的 view controller, 并 dismiss後面present的会被全部关掉
那如果是程式上的写作是用甚麽方式会比较好呢
抑或是说通常大家用怎样的技巧来进行页面的切换
有甚麽固定的pattern吗 (?)
谢谢!
※ 编辑: redok 来自: 116.89.131.33 (01/08 13:18)
6F:推 kiii210:用NSNotificationCenter 完成後在登入页dismiss? 01/08 13:29
这真的是一个绝妙的想法! 也可行!
不过似乎太大费周章
7F:→ topkiss:有用过addChildViewController吗?感觉原po只是想要一个 01/08 13:42
8F:→ topkiss:框架去完成登入流程而已@@ 01/08 13:43
9F:→ howdiun:资料设定页的话,用push比较好吧 01/08 15:29
这只是我举的范例啦^^ 并不是一定要设定页
※ 编辑: redok 来自: 116.89.131.33 (01/08 16:36)