2013-05-17 69 views
8

我介紹模式視圖這是一個導航控制器:dismissViewControllerAnimated在空白屏幕效果

UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:photoEditVC]; 
[self presentViewController:nvc animated:YES completion:NULL]; 

一旦我與模態視圖完成後,雷士照明的可見控制器內:

[self.presentingViewController dismissViewControllerAnimated:YES completion:NULL]; 

結果 Blank Screen

任何想法,爲什麼會發生這種情況?

UPDATE: 我意識到,當解僱的觀點之前,我更新共享的單例類,我用它來跟蹤事件的價值這只是發生。

[[SAStatus current] setValue:@(ua_photoSubmitted) forKeyPath:@"actions.user"]; 
[self dismissViewControllerAnimated:YES completion:NULL]; 

但如果我這樣做,它工作正常:

[[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
    [[SAStatus current] setValue:@(ua_photoSubmitted) forKeyPath:@"actions.user"]; 
}]; 

或我能做到這一點,它也能正常工作:

[self dismissViewControllerAnimated:YES completion:^{ 

      [[SAStatus current] setValue:@(ua_photoSubmitted) forKeyPath:@"actions.user"]; 
}]; 

當時,沒有其他類的觀察者認爲變量,所以我不明白爲什麼它會影響模態視圖。

+1

實際上,無論你是在self還是self.presentingViewController上調用它都沒關係,它們都應該工作。無論你的問題是什麼,它都不是你用過的代碼。 – rdelmar

回答

3

不確定這是否會導致黑屏,但是呈現的視圖控制器應該在其自身上調用dismissViewController,而不是在呈現視圖控制器上。

[self dismissViewControllerAnimated:YES completion:nil]; 
+1

正確,正如文檔中所說的「如果您在呈現的視圖控制器本身上調用此方法,它會自動將該消息轉發給呈現視圖控制器」 –

+0

感謝您的答案,但這不是問題。我更新了上述問題。 –

3

我在iOS 8 GM上看到了這個問題。把動畫設置爲NO解除了訣竅。

+2

這是一個解決方案,*嘆息* – M0rph3v5

+0

這是一個臨時解決方案,直到蘋果修復它!也許你可以改用iOS 7自定義轉換API。 –

+0

我正在使用官方iOS 8開發人員工具包的Xcode 6.0.1,並且問題似乎尚未得到修復。但是,設置animated = NO仍然可以解決問題。非常感謝! – Katlu