2014-01-25 83 views
0

我正在iOS應用程序,用戶應該能夠創建具有多張照片的對象。UIViewController UIImagePickerController到其他UIViewController

現在我有兩個ViewControllers:A和B. 視圖控制器等顯示所有創建的對象和一個按鈕列表切換到視圖控制器B. 視圖控制器B負責創建新的對象。它由一個CollectionView組成,它顯示已經爲該對象拍攝的所有照片,以及一個啓動UIImagePickerController來拍攝新照片的按鈕。

使用案例:

  1. 在視圖控制器A的用戶點擊按鈕來創建新的對象
  2. 的ViewController乙負載在集合視圖中沒有照片。
  3. 用戶必須單擊ViewController B中的按鈕來加載UIImagePickerController。
  4. 用戶拍攝一張照片,返回到ViewController B
  5. 用戶可以拍攝另一張照片。

我想結合第2步和第3步。

  1. 用戶點擊按鈕,在視圖控制器一個
  2. 的UIImagePickerController被載入
  3. 用戶拍照,返回到ViewController中乙

在我開始在視圖控制器B的viewDidAppear中的UIImagePickerController的那一刻,但首先出現ViewController B和UIImagePickerController。

編輯:我正在使用故事板來完成所有這些。 ViewController A在導航控制器中,ViewController B在另一個導航控制器中,我正在使用模態故事板segue進行轉換。

+2

但是你沒有透露你的視圖控制器體系結構/層次結構,這就是問題所在。請指定你是如何「加載」視圖控制器。例如,我認爲UIImagePickerController是一個_presented_視圖控制器,是嗎?視圖控制器B怎麼樣? – matt

+0

你可以統計收藏數量,然後決定將用戶發送到哪裏,如果他點擊按鈕 – floww

回答

1

如果您將圖像採集器作爲模態視圖呈現,我的想法是在視圖控制器B上編寫一個方法,在任意視圖控制器上呈現圖像採集器控制器。例如:-(void)presentImagePickerFromViewController:(UIViewController *)vc completion:(void (^)(void))completion。在視圖控制器A中,實例化一個視圖控制器B對象,並在視圖控制器上調用此方法,傳遞self。在完成塊中,現在在導航堆棧上呈現視圖控制器B而無需動畫。這樣,您的視圖控制器B從圖像選取器直接獲取信息,將視圖控制器B中的所有圖像代碼封裝起來,並讓您在完成選取器後直接進入視圖控制器B.

另一方面,如果您要在導航堆棧中顯示圖像選擇器,則可以從UINavigationControllerDelegate回調中的一個調用導航控制器上的setViewControllers:animated:方法。我自己沒有測試過,但我相信這個方法允許你將視圖控制器插入到導航堆棧中。

希望這會有所幫助!

+0

非常感謝,現在它的工作:) – Justus1

相關問題