2012-09-16 58 views
0

我想檢查一個視圖控制器已創建。如果視圖已經存在,那麼它應該成爲當前視圖。如果它不存在,則應該創建並使其可見。檢查是否UIViewController中已經創建

我的代碼是

  DemoViewController *demoController = [DemoViewController alloc]; 
     for(DemoViewController *view in self.navigationController.viewControllers) 
     { 
      if([view isKindOfClass:[DemoViewController class]]) 
      { 
       viewExists=true; 
       demoController=view; 
      } 

     } 
     if (!viewExists) { 
      demoController initWithNibName:@"DemoViewController" bundle:nil; 
     } 
     [view release]; 
     [demoController release]; 

我不知道我要去哪裏錯了,但它會出現在for循環沒有被執行。 任何幫助將是偉大的!

回答

0

嘗試這樣的:

DemoViewController* demoController = nil; 
for(int vv=0; vv<[self.navigationController.viewControllers count]; ++vv) { 
    NSObject *vc = [self.navigationController.viewControllers objectAtIndex:vv]; 
    if([vc isKindOfClass:[DemoViewController class]]) { 
     demoController = (DemoViewController*)vc; 
    } 
} 

if (demoController == nil) { 
    demoController = [[DemoViewController alloc] initWithNibName:@"DemoViewController" bundle:nil]; 
    // Do we need to push it into navigation controller? 
} 

[demoController release]; 
+0

使用「的UIViewController * VC」,而不是DemoViewController * VC您收到「demoController =視圖」 for循環仍然沒有被執行不兼容的指針類型的警告。 –

+0

我以爲你的DemoViewController繼承自UIViewController?無論如何,我已經對我的代碼進行了修改。覈實... – Tutankhamen