2012-09-16 53 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