关于self.navgationController为nil的问题。       FlipsideViewController *controller = [[FlipsideViewController alloc]  
                                          initWithNibName:@"FlipsideViewController"  
                                          bundle:nil];    CATransition *animation = [CATransition animation];  
    [animation setDuration:0.8];  
    [animation setType: kCATransitionPush];  
    [animation setSubtype: kCATransitionFromLeft];  
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];  
    
   
    [self.navigationController pushViewController:controller animated:YES];    //该行代码中self.navigationController是没有定义的变量,因为执行后没有反应
    
    [self.navigationController.view.layer addAnimation:animation forKey:nil];  
我想知道这个self.navigationController是我要在XIB中上拖入的一个NavigationBar控件吗?
在网上看了好几篇文章说这个问题,但都没有让我完全理解, 这个navigationController到底是个什么,是说创建一个控件后再同这个变量关联上吗? 
如何做关联呢?

解决方案 »

  1.   

    新手回答:       要加一个 navigationController  控件  并且声明 iboutlet在  mainXib文件中     delegate  连接到nav  控件上。这样才能发挥  导航控件的功能
      

  2.   

    那是一个导航栏。作用很多的。    你要用导航栏,就要去加一个navigationController的控件在XIB文件里面。记得使用委托
      

  3.   

    self.navigationController 指的是你当前的navigationController类。要看你的self是作用在哪个类里。看看你的self的h 文件里是如何写的吧。你可以用xib创建navigationController ,也可以用代码。只要继承UINavigationController
      

  4.   

    谢谢两位的回复:
    创建是用代码做的。UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.mainViewController];
    [self.window addSubview:nav.view];当下面这执行完后
      [self.navigationController pushViewController:controller animated:YES];
    在GDB下输入这个值为什么还是不存在。
    (gdb) print self.navigationController
    There is no member named navigationController.
      

  5.   

    上边的代码应该没问题,在gdb下print object时我会使用  po self.navigationController
      

  6.   

    当你的viewcontroller被navigationController push进栈以后,你的self. self.navigationController就不为空了