nik*_*dra 60 ios uistoryboard uistoryboardsegue swift
我正面临错误消息:
"UIStoryboardSegue does not have a member named 'identifier'"
Run Code Online (Sandbox Code Playgroud)
这是导致错误的代码
if (segue.identifier == "Load View") {
// pass data to next view
}
Run Code Online (Sandbox Code Playgroud)
在Obj-C上使用这样很好:
if ([segue.identifier isEqualToString:@"Load View"]) {
// pass data to next view
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Cez*_*zar 97
这似乎是由于UITableViewController子类模板中的问题.它附带了一个版本的prepareForSegue方法,需要你解开segue.
用以下内容替换当前prepareForSegue功能:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "Load View") {
// pass data to next view
}
}
Run Code Online (Sandbox Code Playgroud)
这个版本隐含地打开参数,所以你应该没事.
Zai*_*han 37
Swift 4,Swift 3
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "MySegueId" {
if let nextViewController = segue.destination as? NextViewController {
nextViewController.valueOfxyz = "XYZ" //Or pass any values
nextViewController.valueOf123 = 123
}
}
}
Run Code Online (Sandbox Code Playgroud)
Rya*_*ner 36
我认为问题是你必须使用!解开标识符
我有
override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
if segue!.identifier == "Details" {
let viewController:ViewController = segue!.destinationViewController as ViewController
let indexPath = self.tableView.indexPathForSelectedRow()
viewController.pinCode = self.exams[indexPath.row]
}
}
Run Code Online (Sandbox Code Playgroud)
我的理解是没有!你只是得到一个真或假的价值
San*_*ndu 12
对于Swift 2.3,swift3和swift4:
在didSelectRowAtindexPath创建一个执行Segue
对于Ex:
self.performSegue(withIdentifier: "uiView", sender: self)
Run Code Online (Sandbox Code Playgroud)
之后创建一个prepareforSegue函数来捕获Destination segue并传递值:
例如:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "uiView"{
let destView = segue.destination as! WebViewController
let indexpath = self.newsTableView.indexPathForSelectedRow
let indexurl = tableDatalist[(indexpath?.row)!].link
destView.UrlRec = indexurl
//let url =
}
}
Run Code Online (Sandbox Code Playgroud)
您需要在Destination ViewController中创建名为UrlRec的变量
小智 10
Swift 1.2
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "ShowDeal") {
if let viewController: DealLandingViewController = segue.destinationViewController as? DealLandingViewController {
viewController.dealEntry = deal
}
}
}
Run Code Online (Sandbox Code Playgroud)
为 Swift 4.2 和 Swift 5 中的 Segue 做准备。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "OrderVC") {
// pass data to next view
let viewController = segue.destination as? MyOrderDetailsVC
viewController!.OrderData = self.MyorderArray[selectedIndex]
}
}
Run Code Online (Sandbox Code Playgroud)
如何在特定事件上调用 segue(如按钮单击等):
performSegue(withIdentifier: "OrderVC", sender: self)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126359 次 |
| 最近记录: |