[英]Cannot Dismiss Modal View Controller
我在讓模態視圖控制器正確顯示然后關閉時遇到問題。 基本上,我有一個模態顯示的登錄窗口,我想從數據庫中加載所有要顯示的數據后將其關閉。 如果我打電話
從LoginViewController類中[self dismissModalViewControllerAnimated:YES]
它工作得很好,但是如果我調用
成功導入數據后,在我的[[mainController modalViewController] dismissModalViewControllerAnimated:YES]
類中[[mainController modalViewController] dismissModalViewControllerAnimated:YES]
。 這非常令人困惑,因為[mainController modalViewController]
指向locationManager類。
是否有人對為什么它不起作用有任何想法? 如果這很重要,我正在為iOS 4編程。
謝謝!
消除模態視圖控制器的正確方法是在提供它的視圖控制器上調用-dismissModalViewControllerAnimated:
因此,應該為[_splitViewController dismissModalViewControllerAnimated:YES];
。
根據您的評論,您需要在主線程上調用-dismissModalViewControllerAnimated:
,您可以像這樣進行操作:
dispatch_async(dispatch_get_main_queue(), ^{
[_splitViewController dismissModalViewControllerAnimated:YES];
});
好,所以我知道了。 基本上發生的是[self dismissModalViewController]調用發生在另一個線程上,這由於某種原因意味着該對象未正確處理該dismiss消息。 我最終使用了一個通知,然后像下面這樣調用dismissModalView控制器:
- (void)dismissSelf
{
[self dismissModalViewControllerAnimated:YES];
}
- (void)receiveDismissNotification:(NSNotification *) note
{
[self performSelectorOnMainThread:@selector(dismissSelf) withObject:nil waitUntilDone:NO];
}
哪個有效
要關閉Model View Controller,請使用以下代碼
[self dismissModalViewControllerAnimated:YES];
此代碼也適用於ios 5。
用於呈現模型視圖控制器
if (self.viewController!=nil)
{
//sanity check for view controller
[self.viewController SOMEVIEW animated:YES];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.