一:导航栏的创建及常用方法
let navgationController = UINavigationController(rootViewController: viewC);
//设置导航栏的统一的背景色
UINavigationBar.appearance().barTintColor = UIColor.blueColor();
// 设置导航栏的背景色
navgationController.navigationBar.barTintColor = UIColor.yellowColor();
//设置导航栏的样式
navgationController.navigationBar.barStyle = UIBarStyle.BlackTranslucent;
//设置导航栏透明
navgationController.navigationBar.translucent = true;
//设置导航栏的背景图
navgationController.navigationBar.setBackgroundImage(UIImage(named: ""), forBarMetrics: UIBarMetrics.Default);
//获取控制器中最顶端的视图
let topViewC = self.navigationController?.topViewController;
//获取控制器当前显示的视图
let currentViewC = self.navigationController?.visibleViewController;
//获取当前控制器所有的子视图
let viewAarray = self.navigationController?.viewControllers;
//设置prompt属性,主要是用来做一些提醒,比如网络请求,数据加载等等
self.navigationItem.prompt = "正在加载数据";
//不用时,将prompt属性置为nil即可,自带动画效果哦
self.navigationItem.prompt = nil;
二:导航栏的push和pop方法
1,push方法
self.navigationController?.pushViewController(viewC, animated: true);
2,pop方法
1):返回到上一个视图
self.navigationController?.popViewControllerAnimated(true);
2):返回到根视图
self.navigationController?.popToRootViewControllerAnimated(true);
3):返回到指定的视图
let viewAarray = self.navigationController?.viewControllers;
self.navigationController?.popToViewController(viewAarray![2], animated: true);
三:导航控制器的代理方法UINavigationControllerDelegate
1,签订代理
self.navigationController?.delegate = self;
2,常用代理方法
1):视图控制器将要显示时调用
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
}
2):视图控制器已经显示时调用
func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool) {
}
四:自定义navigationBarItem
navigationItem常用的属性
//自定义左侧一个按钮时使用
self.navigationItem.leftBarButtonItem
//自定义左侧多个按钮时使用
self.navigationItem.leftBarButtonItems
//自定义右侧一个按钮时使用
self.navigationItem.rightBarButtonItem
//自定义右侧多个按钮时使用
self.navigationItem.rightBarButtonItems
//中间显示的标题文字
self.navigationItem.title
//自定义中间部分标题视图时使用
self.navigationItem.titleView
注意:
navigationItem上的按钮是UIBarButtonItem类型,所以自定义时使用UIBarButtonItem的创建方式,然后赋值给上面的属性即可。
例如:
let item = UIBarButtonItem(title: "done", style: UIBarButtonItemStyle.Done, target: self, action: "done:");
self.navigationItem.leftBarButtonItem = item;
UIBarButtonItem有三种创建方式
1):带标题的
public convenience init(title: String?, style: UIBarButtonItemStyle, target: AnyObject?, action: Selector)
2):带图片的
public convenience init(image: UIImage?, landscapeImagePhone: UIImage?, style: UIBarButtonItemStyle, target: AnyObject?, action: Selector)
3:带自定义视图的
public convenience init(customView: UIView)
导航控制器,有些地方讲的不是太详细,大家可以自己查阅下其他资料。