簡體   English   中英

無法關閉模態視圖控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM