lag*_*oon 27 ios uistoryboard uistoryboardsegue swift
我正在尝试将应用程序从Objective-C转换为Swift,但我找不到如何使用Swift在视图之间传递数据.我的Objective-C代码是
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
AnsViewController *ansViewController;
ansViewController = [storyBoard instantiateViewControllerWithIdentifier:@"ansView"];
ansViewController.num = theNum;
[self presentViewController:ansViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
它正在做的是它基本上取变量theNum,并将其传递给另一个视图控制器上的变量num.我知道这可能是一个简单的问题,但我对Swift非常困惑,所以如果有人能解释他们如何将其改为Swift,我将不胜感激!
谢谢
lee*_*lee 36
让我们假设我们站在firstView转到DetailView并希望将数据从firstView传递到Detailview.要使用storyboard,在firstView,我们将有一个方法:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "segueTest") {
//Checking identifier is crucial as there might be multiple
// segues attached to same view
var detailVC = segue!.destinationViewController as DetailViewController;
detailVC.toPass = textField.text
}
}
Run Code Online (Sandbox Code Playgroud)
然后进入DetailView类我们声明了一个变量:
var toPass: String!
Run Code Online (Sandbox Code Playgroud)
那么你可以使用变量toPass(当然你可以根据需要改变变量的类型,在这个EX我只是为字符串类型演示).
fuz*_*uzz 19
class AnsViewController: UIViewController {
var theNum: Int
override func viewDidLoad() {
super.viewDidLoad()
println(theNum)
}
}
override func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
let viewController = self.storyboard.instantiateViewControllerWithIdentifier("ansView") as AnsViewController
viewController.num = theNum
self.presentViewController(viewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47618 次 |
| 最近记录: |