У меня возникли проблемы с передачей строки (StringVar) между контроллерами представления с использованием prepareforSegue. Я изучил различные учебники по этому вопросу, но я все еще не увенчался успехом (я новичок, поэтому проблема может быть чем-то очевидным). Мой код структурирована следующим образом:prepareforSegue Не передавая данные
Возникнув ViewController:
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//Prepare For Segue:
func prepareforSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var SVC = segue.destinationViewController as! StudyViewController
SVC.StringVar = "Hello"
}
Направление ViewController:
class StudyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var StringVar = String()
//intervening code [omitted]
override func viewDidLoad() {
super.viewDidLoad()
print("StringVar = ", StringVar)
// Do any additional setup after loading the view.
}
Оператор печати в функции viewDidLoad работает отлично, но STRINGVAR остается пустым. Есть идеи? Благодарю.
Является ли ваш 'prepareForSegue' выполнения? Я подозреваю, что нет, потому что, как у вас есть, есть опечатка. Вы найдете это, используя 'override'. – Michael
Майкл, я первоначально включил заявление печати под функцию prepareforsegue, чтобы убедиться, что он выполняет. Ничего не напечатано в окне отладчика, но я просто предположил, что отладчик был немедленно очищен segue (я думаю, это было плохое предположение). Какую опечатку вы видите? Я попытался использовать override func, но это вызвало ошибку «Метод не отменяет какой-либо метод из своего суперкласса». – dimery2006
Спасибо, у меня был «f» в ForSegue, как в нижнем регистре. Капитализация, казалось, все исправила. – dimery2006