gpt4 book ai didi

ios - didSelectRowAtIndexPath PerformSegueWithIdentifier = 我在目标 View 中得到 nil

转载 作者:行者123 更新时间:2023-11-30 14:05:38 24 4
gpt4 key购买 nike

我的“开始” View 中有 ThirdView

import Foundation
import UIKit

class ThirdView : UITableViewController {

var jsonz:NSArray = ["Ray Wenderlich"];
var valueToPass : String?;
var programVar : String?;

override func viewDidLoad() {

super.viewDidLoad()
}

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

var newProgramVar = "lol";

let destinationVC = segue.destinationViewController as! FourthView
destinationVC.programVar = newProgramVar
}

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1;
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return self.jsonz.count;
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let myCell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell

myCell.textLabel?.text = self.jsonz[indexPath.row] as? String;
return myCell;
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

let valueToPass = "asd";
let destinationVC = FourthView()
destinationVC.valuePassed = valueToPass;

self.performSegueWithIdentifier("restDetail", sender: tableView);
}
}

我有一个 segue 标识符:restDetail http://i.stack.imgur.com/6SMtS.png

当我运行一个项目并单击单元格时,我无法在“第二个” View 中接收变量valuePassed,我得到零。请帮忙,为什么?但我正常从函数prepareForSegue收到一个变量programVar,这是可以的。我唯一的问题是 didSelectRowAtIndexPath segue。

这是我的第四 View :

import UIKit

class FourthView: UIViewController {


var valuePassed:String!
var programVar:String!

override func viewDidLoad() {


super.viewDidLoad()
println(valuePassed);
println(programVar);


// Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}


}

在这里查看我的输出:

nil
lol
nil
lol

http://i.stack.imgur.com/wbHfm.png

第二个问题:为什么在输出中它显示了 4 次?对不起我的英语。

最佳答案

didSelectRowAtIndexPath 中,您没有正确初始化 FourthView 实例。

这一行:

让destinationVC = FourthView()

创建 FourthView 的随机实例,该实例不是您用作目标的实例。如果您想将值传递给 FourthView,通常最好在 prepareForSegue 中执行此操作。

正如您在下面的行中看到的,这里您将destinationVC变量设置为FourthView实例,它是segue的目标 View Controller 。

让destinationVC = segue.destinationViewController为!第四 View

关于ios - didSelectRowAtIndexPath PerformSegueWithIdentifier = 我在目标 View 中得到 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32445927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com