swift中的传值

  光阴似箭,日月如梭,转眼间学习的旅途已通过了一大半了,忘着本身所敲过的成批的代码,看着本身付出和努力,默默地为本身这几个月的奋斗感到欣慰,不论学习的路途再怎么的艰辛,可是本身仍是坚持过来了,回想着以往的本身,彷佛还从没有这么的坚持过,也没有这么的认真对待过,因此这么艰难的路本身都走过来了,后面的我相信必定是绚丽的明天和辉煌的将来,也许有些人说当个程序员真的好苦,可是我并不这么认为,由于这是我想作的,也是我所向往的,更是我所选择的道路,作“你”所想,实现咱们共同的目标!!!!程序员

  在这看似漫长而又短暂的一天里,我终于认识到了时间的宝贵,也认识了惜时的重要性,但愿你们和我同样都要珍惜时间,把握身边的分分秒秒。今天咱们主要学习了Swift中的传值问题,先是由前向后传值,再者是右后往前传值,固然方法也不止一种的啦,下面我就为你们简单地介绍下在传值中咱们常常遇到的其中一种方法吧,望你们有所收获的同时多提意见哈:app

  1、Storyboard搭建UI界面步骤详解ide

  其中关于建立工程的步骤在这里就很少提了,由于在前面已经说过了,固然了不懂的能够再问哦,下面简单说下传值的基本流程:post

  1.但是话步骤:学习

  箭头所指方向就是故事本也就是storyboard,接下来就要拖控件,进行UI界面的搭建了spa

  先将本来带有的Controller给删除了,而后再重现拖上去一个NavigationController,固然了,这个控件是能够进行搜索的,下面为你们指出搜索的具体位置代理

 

  固然在刚拖进去的时候尺寸会大的有点受不了,不过咱们仍是有针对方案的,下面为你们指出code

  首先咱们须要先选中咱们拖上去的控件而后选中红色圈圈圈出的选项,接下来咱们就能够看到矩形框圈出的区域了,咱们点击它后,会弹出箭头所指的提示框,咱们选择箭头所指的选项就能够实现咱们的需求了。server

  接下来的步骤相似于上面所说的就是单纯的拖控件了,至于大小就不用管了,由于咱们在刚开始的时候已经调好了,控件拖好后的效果是这样的,以下图:blog

  至于那个箭头可能仍是有些人不知道的把,这个咱们须要在另一个选项中调,让第一个视图做为咱们的根视图控制器,如图所示:

  这样简单地UI界面就基本完成了

  2、代码实现具体的传值过程

  首先咱们须要建几个类让咱们所托控件根据实现需求分别继承,其次而后咱们须要本身键model层,来进行数据管理,下面为你们附上传值的具体代码,可能不够详细,有不足还请指出。

class AddressBookTableViewController: UITableViewController {
    
    var arry = [AddressBook]()
    
    func getData(ntf: NSNotification) {
        self.arry.append(ntf.object as AddressBook)
        
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("getData:"), name: "aaa", object: nil)
 var model : AddressBook = AddressBook()
        var dic = Dictionary<String, String>()
        
        dic["name"] = nameTextFiled.text
        dic["sex"] = SexTextField.text
        dic["phoneNumber"] = PhoneTextField.text
        
        model.setValuesForKeysWithDictionary(dic)
        
        NSNotificationCenter.defaultCenter().postNotificationName("aaa", object: model, userInfo: dic)
//        self.delegate!.addInfo(model)
        
        var alt = UIAlertView(title: "添加成功", message: "已经将name:\(nameTextFiled.text) sex:\(SexTextField.text), phoneNumber:\(PhoneTextField.text)插入", delegate: self, cancelButtonTitle: "OK")
        alt.show()

  这是一种从后往前的传值方法,也就是相似于通信录添加联系人的方法。

  下面再为你们介绍从前日后传至的方法,也就是通信录中点击联系人跳转至详情页的实现。

 var arry = [AddressBook]()
        var model1 : AddressBook = AddressBook()
        
        var dic = Dictionary<String, String>()
        dic["name"] = "乔明"
        dic["sex"] = "不明"
        dic["phoneNumber"] = "110"
    
        model1.setValuesForKeysWithDictionary(dic)
        self.arry.append(model1)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
        if sender is UITableViewCell {
        var cell = sender as UITableViewCell
        var indexPath = tableView.indexPathForCell(cell)
        var model = self.arry[indexPath!.row]
        var vc = segue.destinationViewController as ViewController
        vc.delegate = self
        vc.info = model
        } else {
            var vc = segue.destinationViewController as ViewController
            vc.delegate = self
        }
    }
    func addInfo(info: AddressBook) {
        self.arry.append(info)
    }

  固然了,这个前提是要遵循代理,而后实现代理中的方法,具体的建立代理和代理方法我在下面为你们补充上。

         

  这就是两种简单地传值方法,但愿能够帮助你们更快的学习Swift语言,若是有什么不懂的尽管想我提出,有问必答哦,哈哈。

  好了今天就写到这里了,要开始复习今天的知识点了,good good study, day day up!  哈哈,好好学习哦博友们,咱们一块儿进步啦,加油加油!

相关文章
相关标签/搜索