2013-04-28 39 views
1

我正在學習如何使用情節提要處理視圖控制器層次結構。我有2個ViewController:cwViewController類型的根(我知道下面是'self')和第二個類型的WorkspaceViewController。我正在「嘗試在演示進行中呈現!」作爲這個代碼的結果。簡單視圖控制器開關原因:嘗試在演示文稿正在進行時呈現

- (IBAction)nextView { 
    WorkspaceViewController *workspace = [[WorkspaceViewController alloc] initWithNibName:nil bundle:nil]; 
    [self presentViewController:workspace animated:YES completion:NULL]; } 

答案How to present view controller properly?是可以適用這一點,但因爲我不是來回切換的VC之間,我只是提出一個,然後貶顯示無法很好地適應這種情況最接近的答案原本的。

於是,我試圖駁回呈現前一秒當前,由於一些答案建議,像這樣:

[self dismissViewControllerAnimated:NO completion:nil]; 
[self presentViewController:workspace animated:YES completion:NULL]; 

但是,這只是讓我一個額外的警告:嘗試從視圖控制器解僱而呈現或解僱正在進行中!

做一些其他的研究,我看到了類似的問題,通過加入一個塊

[self dismissViewControllerAnimated:YES...] 

解決,但因爲之前我甚至到一個地步,我認爲這種解僱方式出現我的警告,不幫助這裏。關於如何處理視圖的順序和層次結構的進一步知識將是一個很大的幫助。非常感謝。

+0

首先,如果你使用的是故事板,你應該在alloc初始化WorkspaceViewController。這不是從故事板實例化視圖控制器的方式。故事板上是否有任何插曲? – rdelmar 2013-04-28 05:37:00

+0

發生此問題是因爲您快速點擊nextView多個按鈕嗎? – user523234 2013-04-28 09:22:32

+0

rdelmar,不,我還沒有使用過segues。隨意指出我在正確的方向。 user523234這發生在第一次調用下一個視圖時(它是從通知觀察者調用的)。謝謝大家。 – roro 2013-04-28 21:43:21

回答

0

嘗試

[self presentModalViewController:workspace animated:YES]; 
if (![[self modalViewController] isBeingPresented]) { 
     [self dismissModalViewControllerAnimated:YES]; 
} 
2

你創建一個從按鈕SEGUE你WorkSpaceViewController?如果是這樣,您可能會嘗試兩次顯示WorkSpaceView - 一次選擇按鈕並從cwViewController中一次。要消除該錯誤,請將按鈕上的Segue從WorkSpaceViewController中刪除,然後重新創建segue - 這次是在cwViewController和WorkSpaceViewController之間進行的。這應該照顧它。

2
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

// TODO: make this all threaded? 
// crop the image to the bounds provided 
img = [info objectForKey:UIImagePickerControllerOriginalImage]; 
NSLog(@"orig image size: %@", [[NSValue valueWithCGSize:img.size] description]); 

// save the image, only if it's a newly taken image: 
if ([picker sourceType] == UIImagePickerControllerSourceTypeCamera) { 
    UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil); 
} 

// self.image_View.image = img; 
// self.image_View.contentMode = UIViewContentModeScaleAspectFit; 

NSLog(@"Picker has returned"); 
[self dismissViewControllerAnimated:YES 
         completion:^{ 
          ModalViewController *sampleView = [[ModalViewController alloc] init]; 
          [self presentModalViewController:sampleView animated:YES]; 
         }]; 
} 
相關問題