2.Storyboard传参小技巧

在前面, 我们除了知道用回调函数进行传参, 还有一种方法就是使用苹果自带的Storyboard进行传参,下面让我们来看看。

PS: 已更新到Swift 2.0, 支持Xcode7, iOS9


1.搭建界面

1.全局界面
1

2.界面细节
2

PS: 下面这个操作需要在编码准备里的UITableViewController定义好@IBAction func saveToMainViewController(segue: UIStoryboardSegue) {} 方法才会显示
3

4

5

6


2.实现代码(MytableViewController)

在真正写代码之前, 我们需要关联控件, 以及声明变量.
1.MyTableViewController

// 1.声明数据源数组 
var models = ["iPhone 6 Plus Gold 128 GB", "iPhone 6 Plus Gold 64 GB", "iPhone 6 Plus Gold 16 GB", "iPhone 6 Gold 128 GB", "iPhone 6 Gold 64 GB", "iPhone 6 Gold 16 GB"] 

// 2.自定义保存方法 
    @IBAction func saveToMainViewController(segue: UIStoryboardSegue) { 
    // 2.1获得editTableViewController 
    // 2.2获得editTableViewController的index变量 
    let index = dataiViewController.index 

    // 2.3获得editTableViewController的editedModel变量 
    let modelString = dataiViewController.editedModel 

    // 2.4往models里添加对应位置的对应内容 
    models[index!] = modelString! 

    // 2.5刷新当前tableView 
    tableView.reloadData() 
}

UITableView的代理方法

// 3.UITableView的代理方法 
    override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
        // 3.1返回的组数为1 
        return 1 
    } 

    // 4.UITableView的代理方法 
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
        // 4.1返回UITableViewCell的行数为models的个数 
        return models.count 
    } 

// 5.UITableView的代理方法, 返回TableView的数据源
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("tableCell", forIndexPath: indexPath) as UITableViewCell 
    // 5.2UITableViewCell添加对应行数的内容 
    cell.textLabel?.text = models[indexPath.row] 

    // 5.3返回自定义好的UITableViewCell
    return cell 
}

重写UIStoryboardSegue方法

// 6.重写UIStoryboardSegue方法, 把MyTableViewController的参数传值到editTableViewController 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    // 6.1判断segue的Identifier是否为"edit", 如果是就执行里面的方法 
    if segue.identifier == "edit" { 

        // 6.2获取UITableView当前所点击的UITableViewCell行数 
        let path = tableView.indexPathForSelectedRow 

        // 6.3获得editTableViewController
        let detailViewController = segue.destinationViewController as! editTableViewController 

        // 6.4设置editTableViewController的index变量为获得的当前UITableView所点击的UITableViewCell 
        detailViewController.index = path?.row 

        //6.5设置editTableViewController的modelArray变量为models 
        detailViewController.modelArray = models
    } 
}

3.实现代码(editTableViewController)

关联控件, 声明变量

// 1.关联UITextField控件 
    @IBOutlet weak var editModelTextField: UITextField! 
// 2.声明变量名为index的Int类型变量 
    var index: Int? 
// 3.声明变量名为modelArray的String类型数组 
    var modelArray: [String]! 
// 4.声明变量名为editedModel的String类型变量 
    var editedModel: String?

实现ViewDidLoad方法

override func viewDidLoad() { 
    super.viewDidLoad() 
    // 5.把对应行的内容赋值给editModelTextField   
    editModelTextField.text = modelArray[index!] 
}

UITableView代理方法

// 6.UITableView的点击事件代理方法
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
// 6.1判断当点击的UITableViewCell如果是第0组的第0行, 那么久执行下面的方法 
    if indexPath.section == 0 && indexPath.row == 0 { 
        editModelTextField.becomeFirstResponder() 
    } 
// 6.2取消UITableViewCell当前已选中的状态 
    tableView.deselectRowAtIndexPath(indexPath, animated: true) 
}

重写UIStoryboardSegue方法

// 7.重写UIStoryboardSegue方法 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
// 7.1判断segue的Identifier是否为save, 如果是就把编辑好的内容赋值给
    editedModel if segue.identifier == "save" { 
        editedModel = editModelTextField.text 
    } 
}

4.最终效果

0


好了, 这次我们就讲到这里, 下次我们继续~~

Xcode中制作LaunchScreen.storyboard可以通过以下步骤进行: 1. 打开Xcode并创建一个新的项目或打开现有的项目。 2. 在项目导航栏中,找到并选中名为LaunchScreen.storyboard的文件。 3. 在Interface Builder中,你将看到一个可视化的画布,用于创建你的Launch Screen界面。 4. 你可以在右侧的对象库中选择和拖拽各种视图元素到画布上,比如标签、图像视图、按钮等等。根据你的需求,自定义你的Launch Screen界面。 5. 使用自动布局和约束来确保你的Launch Screen在各种设备和屏幕尺寸下都能正确显示。你可以使用Auto Layout来指定视图之间的关系和位置,以及对内容进行自适应布局。 6. 添加所需的背景图像或启动图像。你可以在图像资源选项卡中,将你的图像文件拖拽到LaunchScreen.storyboard上,并将其设置为背景图像或者其他所需的位置。 7. 根据需要,你可以使用动画效果或过渡效果来提高Launch Screen的可视化效果。这可以通过在Launch Screen上添加动画视图或切换视图的方式来实现。 8. 在你完成Launch Screen的设计和布局后,你可以选择在应用程序设置中将其设置为你的项目的主要启动界面。进入“General”选项卡,找到“App Icons and Launch Images”部分,选择“Launch Screen File”并选择你的Launch Screen.storyboard文件。 通过以上步骤,你可以使用Xcode中的Interface Builder创建和设计Launch Screen.storyboard,以实现你想要的启动界面效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值