2010-03-18 74 views
2

我有一個imagePickerController,它允許用戶拍攝或選擇圖像。 In - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;我想觸發打開另一個模態視圖來捕捉標題。我有用於該目的的電話... 如何從didFinishPickingMediaWithInfo推送模式視圖

 
-(void) getcaption:(id) obj { 
    textInput * ti = [[textInput alloc] initWithContent:@"" header:@"Caption for photo" source:2]; 
    ti.delegate = self; 
    [self presentModalViewController:ti animated:YES]; 
    [ti release];
}

的問題是,如何調用getcaption而不觸發的

 
#6663 0x324abb18 in -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]() 

螺旋此刻,我做

[self performSelector:@selector(getcaption:) withObject:nil afterDelay:(NSTimeInterval)1]; 

在didFinishPickingMediaWithInfo 這是討厭的,只有95%可靠

回答

3

我假設問題是,你是一個在舊視圖關閉之前試圖顯示新視圖?我假設你在一個父視圖控制器中,它顯示兩個模態視圖,它是父視圖。如果是這種情況,則應顯示新模態視圖的位置是父視圖完全隱藏了以前的模態視圖。特別是,這發生在

- (void) viewDidAppear:(BOOL)animated 

你要確保你只顯示第二模式鑑於前一個已經完成,當然後,(即不顯示它當父視圖出於任何其他原因)

+0

謝謝埃德。我以爲可能是這樣,我想避免這種情況,因爲我不知道如何構建這種觸發器。我的暴力方法就是在viewcontroller中有一個屬性:即。 get didFinishPickingMediaWithInfo設置一個屬性,如bool viewWillAppearShouldRequestCaption,並使用viewWillAppear來觸發顯示。有沒有更好的建築來請求這樣的事情? – Andiih 2010-03-18 14:01:24

+0

任何更好的架構都會比這更復雜,而且你所建議的是我會去的。 – 2010-03-18 17:23:37

+0

這種工作。我仍然需要使用performSelector:withObject:AfterDelay:from viewDidAppear:否則,如果我直接調用它,就像所有視圖都出現一樣,我得到一個EXEC BAD ACCESS。我不高興我已經到了這個底部。 (另外我說ViewWillAppear在我的第一個評論 - 我的意思是ViewDidAppear) – Andiih 2010-03-20 10:25:09