加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift -NavigationController,代理传值

发布时间:2020-12-14 01:55:13 所属栏目:百科 来源:网络整理
导读://// ViewController.swift// NavigationController//import UIKitimport Foundationclass ViewController: UIViewController,FontSizeChangDelegate { var myLabel :UILabel?;//声明一个UILabel对象 全局的 override func viewDidLoad() { super.viewDidLoa
//
//  ViewController.swift
//  NavigationController
//


import UIKit
import Foundation

class ViewController: UIViewController,FontSizeChangDelegate {

    var  myLabel :UILabel?;//声明一个UILabel对象 全局的
    override func viewDidLoad() {
        super.viewDidLoad()
        //self.title = "百度";
        self.navigationItem.title = "百度";
        
        let nextItem = UIBarButtonItem(title: "下一页",style: .Plain,target: self,action: "nextPage");
        self.navigationItem.rightBarButtonItem = nextItem;
        
        //放一个Label可以显示文字
        let rect = CGRect(x: 0,y: 100,width: 320,height: 44);
        myLabel = UILabel(frame: rect);
        myLabel!.text = "欢迎来到百度";
        self.view.addSubview(myLabel!);
       
        // Do any additional setup after loading the view,typically from a nib.
    }
    
    func nextPage(){
        NSLog("按钮被点击了");
        let svc = SubViewController();
        
        //设置这个协议
        
        svc.delegate = self;
        self.navigationController?.pushViewController(svc,animated: true);
        
    }
//  代理方法
    func fontSizeDidChange(controller: SubViewController,fontSize: Int) {
        println("controller is(controller) fontsize:(fontSize)");
        let font = UIFont.systemFontOfSize(Float(fontSize));//这里有错误
        myLabel!.font = font;
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
//
//  SubViewController.swift
//  NavigationController
//


import UIKit
import Foundation
//定义一个协议

protocol FontSizeChangDelegate:NSObjectProtocol{
    //定义的一个协议函数/代理的一个函数
    //参数1 当前controller本身
    //参数2 字体大小
    func fontSizeDidChange(controller:SubViewController,fontSize:Int);
}

class SubViewController: UIViewController {
    var fontSize:Int = 20;
    //定义一个delegate对象
    var delegate:FontSizeChangDelegate?;
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor .whiteColor();
        
        self.title = "Page2";
        //self.backgroundColor = UIColor .whiteColor();
        // Do any additional setup after loading the view.
        var btn = UIButton.buttonWithType(.System) as UIButton;
        var frame = CGRect(x: 100,width: 100,height: 100);
        btn.frame = frame;
        btn.setTitle("增大字体大小",forState: .Normal);
        btn.addTarget(self,action: "clickMe:",forControlEvents:.TouchUpInside);
        self.view.addSubview(btn);
    }
    func clickMe(sender:UIButton){
        //self.navigationController?.popToRootViewControllerAnimated(true);
        fontSize++
        println("fontsize is(fontSize)");
        
        if((delegate) != nil)
        {
            //调用里面的协议方法
            delegate?.fontSizeDidChange(self,fontSize:fontSize);
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    

    /*
    // MARK: - Navigation

    // In a storyboard-based application,you will often want to do a little preparation before navigation
    override func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读