我在我的应用程序中遇到问题。
我在我的导航栏中添加了一个栏按钮项,然后按住 ctrl 将其拖到另一个 View Controller ,该 View Controller 在测试时按预期工作。这次我再次按住 ctrl 键拖动它,使其成为自己 VC 中的一个 Action 并添加了代码。
当它被按下时我想要发生什么以及执行 segue 但只有 segue 发生。如果我删除 segue,那么代码会运行,但我无法让两者像我预期的那样一起工作。
这是我的代码:
import UIKit
import CoreData
class NewClientViewController: UIViewController, UITextFieldDelegate {
var managedObjectContext: NSManagedObjectContext!
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var ageTextField: UITextField!
@IBOutlet weak var telephoneTextField: UITextField!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var heightTextField: UITextField!
@IBOutlet weak var weightTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
}
// Dismiss keyboard when empty space tapped
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
nameTextField.endEditing(true)
ageTextField.endEditing(true)
telephoneTextField.endEditing(true)
emailTextField.endEditing(true)
heightTextField.endEditing(true)
weightTextField.endEditing(true)
}
// Dismiss keyboard when return tapped
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
@IBAction func saveButton(_ sender: Any) {
let clientItem = Client(context: managedObjectContext)
clientItem.name = nameTextField.text
clientItem.age = ageTextField.text
clientItem.telephone = telephoneTextField.text
clientItem.email = emailTextField.text
clientItem.height = heightTextField.text
clientItem.weight = weightTextField.text
do
{
try self.managedObjectContext.save()
print("Successfully Saved!")
}
catch
{
print("Could not save data \(error.localizedDescription)")
}
}
}
最佳答案
将一个 segue 从您的 firstViewController
拖到您的 secondViewController
并向其添加一个 identifier
。然后在您的按钮操作中,您只需执行以下操作:
performSegue(withIdentifier: "yourIdentifier", sender: nil)
如果要传递任何值,请添加以下函数:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "yourIdentifier" {
let secondViewController = segue.destination as! SecondViewController
}
}
关于ios - 从导航栏中的栏按钮项到另一个 View Controller 的 Segue 不会运行我的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44595625/