快开学了,继续码一码iOS开发~

本文介绍了iOS开发中的代理delegate概念及其实现步骤,并演示了如何利用segue实现视图间的过渡和数据传递,为初学者提供了实用的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

快要开学了,然而视频还木有看完,这叫一个心烦~

算了~先把学过的踩一踩吧  !!!==

很多都是个人理解~如果有说的不对的欢迎指正~~

学习iOS开发,发现很多东西都是现成的,用起来也顺手。也正因为app开发的控件和功能都是封装好的,使得爱疯爪机所有的app风格都比较统一,动画效果、手势也都很舒服。


先来说一说代理delegate:


通常,一个delegate的使用过程,需要五步:

1.     创建一个 delegate;

2.    委托者声明一个delegate;

3.    委托者调用delegate内的方法(method);

4.    被委托者设置delegate,以便被委托者调用;

5.    被委托者实现Delegate 所定义的方法。


代理的声明方式如下


protocol FaceViewDataSource: class{

    func smilinessForFaceView(sender: FaceView) -> Double?

}


代理这样的声明好像有一点像抽象类,方法的实现,是在“继承”了这个代理的类中:delegate的一个用处就是在view和controller之间交换数据:


class HappinessViewController: UIViewController, FaceViewDataSource{

// blabla别的代码

func smilinessForFaceView(sender: FaceView) -> Double? {

        return Double(happiness-50)/50

    }

}


下面是segue,segue可以使得两个view连接起来,并且附带滑动效果~
segue使用起来很简单,control+拖拽就可以实现,然后在其相应的controller中,实现方法prepareForSegue即可,示例代码码一码

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        var destination = segue.destinationViewController as? UIViewController

        if let navCon = destination as? UINavigationController{

            destination = navCon.visibleViewController

        }

        if let hvc = destination as? HappinessViewController{

            if let identifier = segue.identifier{

                switch identifier{

                    case "sad": hvc.happiness = 0

                    case "happy": hvc.happiness = 100

                    default:hvc.happiness = 50

                }

            }

        }

    }


segue有一个重要的属性就是其id,上例的代码中的switch语句,也正是通过id来识别不同的segue,从而实现不同的功能

心得是~善用 类和类的对象 来完成功能,交互数据


好像已经写了不少~作为一只兔子要去蹦跶一会儿了~~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值