美文网首页
swift中UINavigationController的使用

swift中UINavigationController的使用

作者: 不安分心 | 来源:发表于2016-12-20 13:54 被阅读0次

    UINavigationController的使用

    1.AppDelegate中
    var window: UIWindow?
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            
            // 创建window
            self.window = UIWindow(frame: UIScreen.main.bounds)
            // 创建UINavigationController
            let rootVC = RootViewController()
            let nav = UINavigationController(rootViewController: rootVC)
            
            self.window?.rootViewController = nav
            self.window?.makeKeyAndVisible()
            return true
        }
    
    2. RootViewController中
    import UIKit
    
    class RootViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            self.view.backgroundColor = UIColor.red
    
            self.setupNav()
        }
        
        func setupNav() {
            self.title = "首页"
            // 创建只带标题的UIBarButtonItem
            let nextItem = UIBarButtonItem(title: "next", style: .plain, target: self, action: #selector(nextPage));
            self.navigationItem.rightBarButtonItem = nextItem
        
        }
        func nextPage() {
            print("nextPage")
            let vc = MainViewController()
            self.navigationController?.pushViewController(vc, animated: true)
            
        }
    }
    
    3.MainViewController中
    import UIKit
    
    class MainViewController: UIViewController {
    
        var btn: UIButton?
        override func viewDidLoad() {
            super.viewDidLoad()
            self.view.backgroundColor = UIColor.orange
            btn = UIButton(type: .contactAdd)
            btn?.addTarget(self, action: #selector(back), for: .touchUpInside)
    
            self.setupNav()
        }
        func setupNav() {
            self.title = "第二页"
            // 创建带图片的UIBarButtonItem
    //        let image = UIImage(named: "ico_fanhui_")
    //        let popItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(back))
    //        let pop = UIBarButtonItem(image: image, landscapeImagePhone: image, style: .plain, target: self, action: #selector(back))
            // 创建自定义的UIBarButtonItem
            let btnItem = UIBarButtonItem(customView: btn!)
            self.navigationItem.leftBarButtonItem = btnItem
        }
        func back() {
            /** 
             该方法在Xcode 8 / Swift 3下会报警告: “Expression of type UIViewController? is unused” warning
             在swift3下   popViewController(animated:) 返回returns UIViewController?,而UIViewController?没有使用,所以报警告
            */
    //        self.navigationController?.popViewController(animated: true)
            // 下面两种写法一样
            // _的作用,忽略返回值,起忽略作用
            _ = navigationController?.popViewController(animated: true)
            _ = self.navigationController?.popViewController(animated: true)
            
        }
    }
    

    相关文章

      网友评论

          本文标题:swift中UINavigationController的使用

          本文链接:https://www.haomeiwen.com/subject/mznxvttx.html