swift(四)
来源:互联网 发布:女孩做网络销售的多吗 编辑:程序博客网 时间:2024/06/06 02:20
今天用swift写了个tableView,用闭包实现了反向传值 。。。感觉现在语法掌握多了。。可以写点东西了。
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate{
let cellIdentify = "cell1"
var mainTableView =UITableView()
var dataArray = [Int]()
overridefunc viewDidLoad() {
super.viewDidLoad()
self.mainTableView =UITableView(frame: CGRectMake(0,0, UIScreen.mainScreen().bounds.size.width,UIScreen.mainScreen().bounds.size.height), style: UITableViewStyle.Plain)
mainTableView.delegate =self
mainTableView.dataSource =self
mainTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellIdentify)
self.view.addSubview(mainTableView)
dataArray.append(10)
// Do any additional setup after loading the view, typically from a nib.
}
func tableView(tableView:UITableView, numberOfRowsInSection section:Int) -> Int {
returndataArray.count
}
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCell {
let cell1 = tableView.dequeueReusableCellWithIdentifier(cellIdentify, forIndexPath: indexPath)
cell1.textLabel?.text ="\(indexPath.row)"
return cell1
}
func tableView(tableView:UITableView, didSelectRowAtIndexPath indexPath:NSIndexPath) {
let twoViewController1 =twoViewController()
self .presentViewController(twoViewController1, animated:true) { () ->Void in
}
}
//闭包最全定义
var str = {
(str1:String,str2:String) ->Stringin
return str1+str2
}("a","b")
//省略闭包返回值但是要显示生命变量类型
var string:String = {
str1,str2 in
return str1+str2
}("c","D")
overridefunc didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
下面这两个使用闭包反向传值
class twoViewController: UIViewController {
var titleLabel:UILabel?
func oneClosure(str1:String) ->Void {
self.titleLabel?.text = str1
}
overridefunc viewDidLoad() {
self.view.backgroundColor =UIColor.redColor()
let nextButton =UIButton(type: UIButtonType.System)
nextButton.setTitle("下一页", forState:UIControlState.Normal)
nextButton.frame =CGRectMake(100,100, 100,40)
nextButton.addTarget(self, action:"nextStep", forControlEvents:UIControlEvents.TouchUpInside)
nextButton.backgroundColor =UIColor.whiteColor()
self.view .addSubview(nextButton)
self.titleLabel =UILabel(frame: CGRectMake(100,200, 100,40))
self.titleLabel?.text ="现在是第一页"
self.titleLabel?.backgroundColor =UIColor.greenColor()
self.view.addSubview(self.titleLabel!)
}
func nextStep() {
let threeView =ThreeViewController()
threeView.closure =oneClosure
// threeView.sendValue(oneClosure)
self.presentViewController(threeView, animated:true) { () -> Voidin
}
}
//typealias 重命名
//泛型无法重命名(要保证泛型的确定)
//class person<T> {}
typealias Cloure = String->()
class ThreeViewController:UIViewController {
overridefunc viewDidLoad() {
self.view.backgroundColor =UIColor.yellowColor()
}
var closure:Cloure?
func sendValue(Clo:Cloure) {
closure = Clo
}
overridefunc touchesBegan(touches: Set<UITouch>, withEvent event:UIEvent?) {
self.closure!("诶~变了")
self.dismissViewControllerAnimated(true) { () ->Void in
}
}
// var closure:Cloure?
//
// func sendValue(clo: Cloure) {
// self.closure = clo
// }
//
// override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
//
// self.dismissViewControllerAnimated( true) { () -> Void in
//
// }
// }
//
//
// override func viewWillDisappear(animated: Bool) {
// self.closure?(10)
// }
//
// deinit {
// print("内存释放")
// }
// typealias workId = String
// typealias worker = person<workId>
//要保证泛型的确定性才可以重命名这个泛型
- 自学Swift(四)
- swift(四)
- swift UITableView(四)
- Swift 笔记(四)
- Swift 数据类型(四)
- 学习Swift笔记 (四)
- Swift 語言入門(四)標準函式
- swift学习笔记(四)
- swift 学习记录(四)
- Swift基础(四)数组
- swift 地图定位(四)
- Swift学习——Swift基础详解(四)
- iOS8开发~Swift(四)理解?和!
- Swift中文教程(四) 集合类型
- 基础知识—Swift学习笔记(四)
- Swift中文教程(四) 集合类型
- Swift中文教程(四) 集合类型
- Swift学习-集合类型(四)
- Memcache存储大数据的问题
- javascript中event.keycode大全
- 模拟JavaScript中alert和confirm
- 跑跑卡丁车一按ESC或者按ENTEL就自退出解决方法
- 破解卡巴斯基不能在windows server系统安装
- swift(四)
- JavaScript获取页面宽度高度大全
- PHP split 函数
- 在js中刷新本页
- php中查找方法()
- JS 打开新窗口的方法
- 五种360safe不能运行,启动,打开的解决办法。
- php类似js indexof与lastindexof的方法
- Discuz!全局变量列表