【发布时间】:2015-12-24 07:20:13
【问题描述】:
我有一个应用程序设置有一个主根视图控制器和一个带有“设置按钮”的导航栏。当用户点击设置按钮时,它会弹出一个“settingsTableViewController”,它不是动态的,而是静态的,因此我可以使用样式等设置格式化表格视图。
在这个设置视图中,我有一个 UITextField,它带有一个人的名字。
当用户在导航栏中单击“完成”时,我想将该名称传递回主根视图控制器,以便我可以在标题中使用它来显示人的名称。 (我想在关闭视图时传递名称)
我曾尝试使用 segue,但没有运气。这是我尝试过的一点。
SettingsViewController(在 MasterVC 上弹出)
class SettingsTableViewController: UITableViewController {
@IBOutlet weak var nameTextfield: UITextField!
@IBAction func done(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
override viewDidLoad(){
self.title = "Settings"
}
// MARK: - Navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Trying to pass what was typed in the textfield to the Root ViewController and store this name in a variable of type String called 'name'
if segue.identifier == "masterView"{
let masterViewController = segue.destinationViewController as! MasterTableViewController
masterViewController.name = nameTextField.text
print("Segue was used")
}
}
}
MasterTableViewController.swift
class MasterTableViewController: UITableViewController {
var name: String!
// I am trying to then display the name entered in the pop-over view in this root view controller's title
override viewDidLoad(){
self.title = name!
}
}
我的问题是,我做错了什么?我曾尝试使用委托,但我得到了 nil,而且数据似乎没有通过任何一种方式,所以任何线索都会有很大帮助。谢谢
【问题讨论】: