present 一個頁面後 使用pushviewcontroller的問題

       最近,做項目的時候遇到的,就是present 一個viewController 後,想在這個頁面上pushviewcontroller 另一個頁面,發現沒有任何網頁,遍搜所有國內的博客,都沒發現有類似的問題,搜stackhack ,發現有類似的問題,經過本人的實驗,終於解決了。現把解決方案貼在這裏,以便於整理和學習。

      遇到這樣的問題,貌似需要先把原先的viewcontroller dissmiss 掉,然後才能用push 的方法推出新的頁面。啥都不說先貼代碼

 1.  在present 一個viewController 前的那個頁面

 

notiView= [[[NotifyViewController alloc]initWithNibName:@"NotifyViewController" bundle:nil]autorelease];
  //  MainViewController *mainController =[MainViewController alloc] ini;
    notiView.delegate=(id)self;
    [self presentModalViewController:notiView animated:YES];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
        sleep(1);
        
        dispatch_async(dispatch_get_main_queue(), ^{
            [self dismissModalViewControllerAnimated:NO];
            [self.navigationController pushViewController:notiView animated:NO];
        });
    });

 在該頁面實現delegate
- (void)didDissmissSearchViewController
{
    [self presentModalViewController:notiView animated:NO];
    [self dismissModalViewControllerAnimated:YES];
}


//2.在該viewcontroller關閉該頁面的時候調用的,並且在該頁面聲明delegate

// [self dismissModalViewControllerAnimated:YES];
    if (self.navigationController != nil) {
        if ([delegate respondsToSelector:@selector(didDissmissSearchViewController)]) {
            [self.navigationController popViewControllerAnimated:NO];
            [delegate didDissmissSearchViewController];
        }
        else {
            [self.navigationController popViewControllerAnimated:NO];
        }
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章