我尝试使用segue方法将数据从一个控制器传递到另一个控制器。 我的第一个viewcontroller是
class ViewController: UIViewController {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "btnSubmitSegue") {
var svc = segue.destinationViewController as ForthViewController;
svc.dataParsed = "this is new text"
}
}
}
在目标视图控制器中 - >
class ForthViewController: UIViewController {
@IBOutlet weak var mylabel1: UILabel!
var dataParsed:String!
override func viewDidLoad() {
super.viewDidLoad()
NsLog(dataParsed)
mylabel1.text = dataParsed
}
}
但数据未加载到目标控制器中的mylabel1.text。你能帮忙弄明白吗
答案 0 :(得分:0)
您必须在一个表视图控制器中编写以下代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "show" {
if let indexPath = self.tableView.indexPathForSelectedRow() {
let object = self.fetchedResultsController!.objectAtIndexPath(indexPath) as! NSManagedObject
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController //DetailViewController
controller.detailItem = object
println(object)
}
}
}
和第二个视图控制器
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
configureView()
}
var detailItem: AnyObject? {
didSet {
// Update the view.
self.configureView()
}
}
func configureView() {
// Update the user interface for the detail item.
if let detail: AnyObject = detailItem {
if var textView = self.text {
textView.text! = detail.valueForKey("mynote")!.description
}
}
}
我希望我帮助过你。
答案 1 :(得分:0)
试试:
class FirstViewController: UIViewController {
private var myStringData = "This is my Data"
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var destView: SecondViewController = segue.destinationViewController as! SecondViewController
destView.data = myStringData
}
}
他们是您的目标视图控制器:
class SecondViewController: UIViewController {
var data: String?
@IBOutlet weak var labelWhereDataWillAppear: UILabel!
override func viewDidLoad() {
labelWhereDataWillAppear.text = data!
print("\(data!)")
}
}
答案 2 :(得分:0)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "currencySegue"{
let controller = segue.destinationViewController as! SubmitDropMenuDetailedTableViewController
controller.currencyId = Int(self.currencyTypeId)
controller.entity = "Currency"
controller.delegate = self
}
else if segue.identifier == "categorySegue"{
let controller = segue.destinationViewController as! SubmitDropMenuDetailedTableViewController
controller.entity = "Category"
controller.categoryId = Int(expenseTypeId)
controller.delegate = self
}
}