zoukankan      html  css  js  c++  java
  • swift -NavigationController,代理传值

    //
    //  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, 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, y: 100,  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. } */ }



  • 相关阅读:
    创建了对嵌入的互操作程序集间接引用,无法嵌入互操作类型
    演练:Office 编程(C# 和 Visual Basic)
    【MySQL案件】ERROR 1418
    Quartus II 11.0破发点(不同的是低版本号)
    Arduino 数码管LED驱动器 阵列方法
    HDU1312 Red and Black 解读
    UVA714- Copying Books(最大最小化)
    最大流量dinci模板
    Python 实现类似PHP的strip_tags功能,并能够定义他们自己的一套保留标记
    从源代码分析modelDriven拦截器和params拦截器和拦截器prepare 和paramsPrepareParamsStack拦截器栈(让你的Struts2代码更简洁——如何培养框架设计能力
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7249675.html
Copyright © 2011-2022 走看看