Swift之导航控制器(UINavigationController)

一:导航栏的创建及常用方法

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)

导航控制器,有些地方讲的不是太详细,大家可以自己查阅下其他资料。
qq交流群号:512847147

你可能感兴趣的:(Swift之导航控制器(UINavigationController))