2011-05-13 71 views
0

我正在創建基於窗口的應用程序(由於我喜歡通用應用程序的組織方式,因此我使用基於窗口的應用程序),但是我遇到了UIImagePickerControllerSourceTypeCamera問題。我想有兩個觀點:UIImagePickerController相機錯誤? (看起來像是「發回」)

父視圖:菜單屏幕 副視點:在這裏你可以選擇從一個畫廊的照片或在這裏您可以用相機屏幕拍攝照片

的主要問題是,當我按下按鈕以使用相機拍攝照片時,它可以工作,並且我可以看到相機控制,而且我甚至可以拍攝沒有問題的照片。但是,無論父視圖中的對象是否覆蓋「查看視圖」屏幕。 (即,如果我將相機指向花朵,我可以在屏幕上看到花朵,但是從父視圖中疊​​加了按鈕和圖像瀏覽,我希望這很有意義)。

我將ImagePickerController添加爲模態視圖。你可以看到下面的代碼。當我從相冊中選擇照片時,它似乎工作正常,但是當我嘗試使用相機拍攝照片時,就好像它被髮送到所有內容的背面。

-(IBAction)setImage:(id)sender{ 

  UIImagePickerController* picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 

 if((UIButton *) sender == ChoosePhoto) { 
     picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
 } else { 
        picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
 } 

  [self presentModalViewController:picker animated:YES]; 

} 

也許我只是缺少一些真正明顯的東西。任何幫助將不勝感激。謝謝!

回答

0

這聽起來像你把所有的「子視圖」放到UIWindow中,而不是放到根視圖控制器的視圖中。不要這樣做,將它們添加到根視圖控制器的視圖。

+0

感謝您的回覆!對不起,如果這是一個非常愚蠢的問題,但你是什麼意思的根視圖控制器。你是說使用多個UIWindows而不是子視圖嗎?對不起,只是有點困惑= \ – user744349 2011-05-14 04:53:01

+0

@ user744349:不。在頂層,你有一個UIWindow對象。在4.0及更高版本中,你不應該爲自己添加任何視圖,只需設置'rootViewController'屬性(在4.0之前,你只需在'applicationDidFinishLaunching:'中做一次'[window addSubview:myRootViewController.view]') 。在IB中,窗口中不應該有任何子視圖。您分配給窗口的'rootViewController'屬性的UIViewController對象是您的根視圖控制器。它有一個'view'屬性。您應該將您的子視圖添加到* that *視圖中,無論是在IB中還是以編程方式。 – Anomie 2011-05-14 12:49:35

+0

我認爲我越來越接近做這項工作。我研究並發現,就像你說的,4.0以前使用'[window addSubview:viewController.view];',但4.0之後應該使用'self.window.rootViewController = self.viewController;'。現在,當我從主菜單切換到我的攝像頭頁面(通過presentModalViewController調用攝像頭)時,我應該使用'[self.view addSubview:mycamerapage_iPad.view];'?我認爲這是我卡住的地方。你碰巧知道關於rootViewController的任何示例或教程?我只是在xcode4 – user744349 2011-05-14 16:33:37

相關問題