背景:我想解僱一個我早先提出的模態視圖,並且馬上提出了我剛剛用新信息解決的相同的viewController
。iOS:消除並顯示ModalViewController而不訪問其父視圖控制器
問題:我沒有這樣做沒有明確指向父ViewController
出示的第一ViewController
模態非常成功。我正在努力編寫這個類,它不妨礙以前的viewController
的代碼。
可能導致:有幾件事情我一直在嘗試:
1)試圖讓父ViewController
,在這個時候,我不知道如何訪問。
2)一旦進入母體的不斷積累,我可以簡單地套用下面的代碼:
UIViewController* toPresentViewController = [[UIViewController alloc] init];
[self dismissViewControllerAnimated:YES completion:^{
[parentViewControllerAccessor presentModalViewController:toPresentViewController animated:YES];
}];
理論上這應該工作給予訪問父viewController
。我願意接受其他方式的這樣做。
假設:您沒有權限更改父母ViewController
中的任何代碼。
如果我理解正確,我應該改變這段代碼:'[parentViewControllerAccessor presentModalViewController:toPresentViewController animated:YES];'''self.presentingViewController presentModalViewController:croppedPhotoVC animated:YES];'。可悲的是,這似乎並不奏效。我理解錯誤嗎? – Byte
這可能是由於塊如何保留對象 - 它將保留自己而不是呈現視圖控制器,因此在「自我」被解除的時候,該屬性可能被設置爲零。將self.presentingViewController設置爲塊之外的局部變量,然後在該塊內使用該變量。 – jhabbott
這與我提出的結論是一樣的。我可能必須製作一個靜態變量來保存這個,這樣當'self'被移除時,該方法仍然可以工作。但是這看起來更像是一種黑客。 – Byte