Re: [問題] present too many view controllers

看板MacDev作者 (Johnny.T)時間11年前 (2014/01/10 14:46), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串2/2 (看更多)
剛剛突然想到 公司的app也有遇到這個情況 我是present兩次, Root->A->B 在A或B的ViewController都有一個返回按鈕, 必須回到RootView A沒問題, 直接dismiss就好 B的話原本是用NSNotificationCenter在B viewDidDisappear時送notification給A A再dismiss, 但是這樣太不流暢 所以... [self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES]; 試試看這樣可不可以吧XD ※ 引述《redok (火焰)》之銘言: : 想請問各位一個程式呼叫流程的問題 : 例如: 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: 1.34.110.106

01/13 10:26, , 1F
可以@@ 可是這樣最好是有明確的流程定義 例如:設定頁就是
01/13 10:26, 1F

01/13 10:27, , 2F
設定頁執行完就結束
01/13 10:27, 2F

01/13 10:27, , 3F
好難形容@@.. 因為設定頁不一定只有一開始設定個人資料的時
01/13 10:27, 3F

01/13 10:28, , 4F
後才可以設定,之後再其它頁面也可能會有設定頁,所以這樣
01/13 10:28, 4F

01/13 10:28, , 5F
的話要保持行為一致
01/13 10:28, 5F
文章代碼(AID): #1IpvSv_t (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1IpvSv_t (MacDev)