// // 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. } */ }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。