两个界面的连接

2016-10-12  本文已影响10人  Dove_Q

ViewController

    @IBAction func didClicked(sender: UIButton) {
        //1. 创建一个页面对象
        let secondCtrl = SecondViewController()
        //2.找到一个已经显示的页面
        //模态视图Modal
        //对于正在显示的页面或控件,系统会自动维持它的强引用
//        self.presentViewController(secondCtrl, animated: true, completion: nil)
        
        //1. 获取window
//        let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
//        appDelegate.window?.rootViewController = secondCtrl
        
        //2. 获取window
//        UIApplication.sharedApplication().keyWindow?.rootViewController = secondCtrl
        
        //3. 对于一个已经显示的视图,一定有一个window属性
        self.view.window?.rootViewController = secondCtrl
    }

    deinit {
        print("第一个页面销毁")
    }

SecondViewController

class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    //每一个页面在显示之前都会调用viewDidLoad
    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.redColor()
        
        let tableView = UITableView(frame: self.view.bounds, style: .Plain)
        tableView.dataSource = self
        tableView.delegate = self
        //显示一个控件,会自动提供强引用
        self.view.addSubview(tableView)
        
        tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
        cell.textLabel?.text = "aaa"
        return cell
    }
    
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        //让当前页面消失
        //系统自动将提供的强引用删除
//        self.dismissViewControllerAnimated(true, completion: nil)
        
//        let firstCtrl = ViewController()
        
        //从Storyboard获取新的第一个页面
        let firstCtrl = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController()
        
        self.view.window?.rootViewController = firstCtrl
    }
    
    deinit {
        print("通知该对象即将销毁")
    }
}
上一篇下一篇

猜你喜欢

热点阅读