UINavigationController使用的一些技巧

2010年2月9日 | laifangwen

UINavigationController iPhone导航控制器/导航栏 是在iPhone程序中广为使用的用户数据互动方式。

屏幕快照 2009-09-06 下午04.17.41

这是一个简单的导航栏截图,我们可以设置其内置UIView的title,而导航栏会显示出这个title。而不是设置导航栏的title。我们也可以设置其左侧,或者右侧的按钮或者自定义视图对象。我们下面来一步一步的看看导航栏的使用:

1,创建并使用一个UINavigationController

UINavigationController *aNav = [[UINavigationController alloc] init];

然后添加一个视图进去,否则导航栏也没有意义的

UIViewController *aView = [[UIView alloc] initWithNibName: (*xib文件名*)];[aNav pushViewController:aView animated:NO];//导航栏的第一个视图不要动画化

2,设置导航栏的左右按钮:
我说过,设置导航栏的按钮并不是去设置导航栏本身,而是当时被导航的视图控制器,比如我们对aView作设置。

设置其标题:

aView.title = @"标题"; //配置一个按钮,我这里是《我的佛典》上的代码UIBarButtonItem *callModalViewButton = [[UIBarButtonItem alloc]       initWithTitle:@"经文"       style:UIBarButtonItemStyleBordered       target:self       action:@selector(callModalList)];self.navigationItem.leftBarButtonItem = callModalViewButton;[callModalViewButton release]; //由于本地视图会retain它,所以我们可以release了

可以看到,还是很简单的嘛。

3,其他常用方法和属性:

本地视图.navigationItem.leftBarButtonItem //左边栏项目本地视图.navigationItem.rightBarButtonItem //右边栏项目本地视图.navigationItem.backBarButtonItem //后退栏项目本地视图.navigationItem.hidesBackButton //隐藏后退按钮(YES or NO)

作为iPhone开发中最常用的对象之一,还有很多内容值得挖掘,不过今天就到这里了。祝愿大家在iPhone编程之路上一路快走!

====================以上来自:http://c.gzl.name/archives/373=======================

 

=======以下来之:http://blog.prosight.me/index.php/tag/uinavigationcontroller=======

今天在做开发的时候,忽然发现在视图的viewWillAppear:方法中添加:

  1.  
  2. [self.tableView reloadData];
  3.  

不起作用,viewWillAppear:这个方法根本没有调用

后来发现原来用了UINavigationController后,viewWillAppear方法是没有效果的,要用UINavigationControllerDelegate的– navigationController:willShowViewController:animated:方法才可以达到这个目的。

所以要做到这个,你必须做以下几步:

1. 设置代理类

  1.  
  2. nav.delegate = self;
  3.  

2. 代理类实现UINavigationControllerDelegate Protocol
3. 在代理类中添加– navigationController:willShowViewController:animated:方法

如:

  1.  
  2. - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
  3. [self.myTableView reloadData];
  4. }

Tags: UINavigationController  UITableView  viewcontroller  cocoa  navigation  
相关文章:

iPhone 开发过程中的一些小技术的总结  (2010-2-9 11:31:2)

控制UINavigationController跳转的方法  (2010-2-9 11:16:35)

怎样为Grouped UITableView增加一个好看的背景  (2010-2-9 11:0:58)

iPhone程序开发的视图和控制器的层次图  (2010-2-9 10:55:37)

自定义NavigationBar的backBarButtonItem  (2010-2-9 10:46:36)

【翻译】在iPhone上使用UITableView开发九宫格视图  (2009-12-28 13:9:16)

收藏:iPhone开发技术多线程之NSInvocationOperation  (2009-8-28 16:53:10)

Three20 TTPhotoViewController使用向导  (2009-8-28 16:46:54)

UITable View实例教程:分组显示列表  (2009-6-18 11:31:30)

UITableView实例教程:创建Table View的detail view  (2009-6-16 17:32:57)

引用通告地址: http://blog.laifangwen.com/cmd.asp?act=gettburl&id=272

评论: 0 | 引用: 0 | 浏览:
名称(*):
邮箱:
网站链接:
正文(*):
选 项:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。