关于self.navgationController为nil的有关问题

关于self.navgationController为nil的问题。
关于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到底是个什么,是说创建一个控件后再同这个变量关联上吗? 
如何做关联呢?

------解决方案--------------------
新手回答:

要加一个 navigationController 控件 并且声明 iboutlet在 mainXib文件中

delegate 连接到nav 控件上。这样才能发挥 导航控件的功能
------解决方案--------------------
那是一个导航栏。作用很多的。

你要用导航栏,就要去加一个navigationController的控件在XIB文件里面。记得使用委托
------解决方案--------------------
self.navigationController 指的是你当前的navigationController类。要看你的self是作用在哪个类里。

看看你的self的h 文件里是如何写的吧。

你可以用xib创建navigationController ,也可以用代码。只要继承UINavigationController
------解决方案--------------------
当你的viewcontroller被navigationController push进栈以后,你的self. self.navigationController就不为空了