[問題] present too many view controllers

看板MacDev作者 (火焰)時間10年前 (2014/01/08 11:15), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/2 (看更多)
想請問各位一個程式呼叫流程的問題 例如: 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)

01/08 11:29, , 1F
popToRootViewController?
01/08 11:29, 1F

01/08 11:39, , 2F
小改的話,把登入頁傳給子頁面,註冊完後[登入頁 dismiss]
01/08 11:39, 2F

01/08 12:56, , 3F
1f說的應該是使用 navigation的方式@@
01/08 12:56, 3F

01/08 12:57, , 4F
2f的意思是說 將最前面的登入頁dismiss的話 其它後面present
01/08 12:57, 4F

01/08 12:57, , 5F
的頁面 也會自動被dismiss?
01/08 12:57, 5F
原文"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)

01/08 13:29, , 6F
用NSNotificationCenter 完成後在登入頁dismiss?
01/08 13:29, 6F
這真的是一個絕妙的想法! 也可行! 不過似乎太大費周章

01/08 13:42, , 7F
有用過addChildViewController嗎?感覺原po只是想要一個
01/08 13:42, 7F

01/08 13:43, , 8F
框架去完成登入流程而已@@
01/08 13:43, 8F

01/08 15:29, , 9F
資料設定頁的話,用push比較好吧
01/08 15:29, 9F
這只是我舉的範例啦^^ 並不是一定要設定頁 ※ 編輯: redok 來自: 116.89.131.33 (01/08 16:36)
文章代碼(AID): #1IpCBEzv (MacDev)
文章代碼(AID): #1IpCBEzv (MacDev)