关于self.navgationController为nil的问题。

iOS 码拜 9年前 (2015-05-04) 1191次浏览 0个评论
 

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

关于self.navgationController为nil的问题。
30分
新手回答:

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

     delegate  连接到nav  控件上。这样才能发挥  导航控件的功能

关于self.navgationController为nil的问题。
20分
那是一个导航栏。作用很多的。

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

关于self.navgationController为nil的问题。
30分
self.navigationController 指的是你当前的navigationController类。要看你的self是作用在哪个类里。

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

你可以用xib创建navigationController ,也可以用代码。只要继承UINavigationController

关于self.navgationController为nil的问题。
谢谢两位的回复:
创建是用代码做的。

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.

关于self.navgationController为nil的问题。
上边的代码应该没问题,在gdb下print object时我会使用  po self.navigationController
关于self.navgationController为nil的问题。
20分
当你的viewcontroller被navigationController push进栈以后,你的self. self.navigationController就不为空了
关于self.navgationController为nil的问题。
它是需要你创建的,如果工程模板没有的话。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于self.navgationController为nil的问题。
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!