//
// 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, y: 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.
}
*/
}
请发表评论