2015-01-08 3 views
0

У меня есть UITableView, который позволяет несколько вариантов выбора. Я хотел бы передать выбранные значения следующему «Q2ViewController», когда пользователь нажимает на правый элементBarButtonItem «Далее». Примечание: я не использую раскадровки. После поиска я не нашел решения без использования storybaord.Передача данных в следующий ViewController с использованием UIBarButtonItem в Swift

var options = ["breakfast", "lunch", "dinner", "dessert"] 
    var selected = -1 

override func viewDidLoad() { 
     super.viewDidLoad() 
     self.title = "Q1View" 
     self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Next", style: .Done, target: self, action: "didTapNext:") 
     self.tableView.allowsMultipleSelection = true 

     var nib = UINib(nibName: "OptionCell", bundle: nil) 
     tableView?.registerNib(nib, forCellReuseIdentifier: "OptionCellIdentifier") 
} 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return self.options.count 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = self.tableView.dequeueReusableCellWithIdentifier("OptionCellIdentifier", forIndexPath: indexPath) as OptionCell 
     cell.textLabel?.text = self.options[indexPath.row] 
     return cell 
    } 

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     println("You selected cell #\(indexPath.row)!") 
    } 
} 

enter image description here

ответ

0

Нигде в своем коде вы должны создать "следующий" вид контроллера. Либо в приложении App Delegate, либо непосредственно в контроллере представления, показанном выше.

Если вы создаете контроллер вида вне вышеуказанного, вам необходимо передать вышеуказанному контроллеру ссылку на контроллер представления назначения.

Если вы создаете контроллер просмотра внутри выше, сохраните ссылку на него в переменной экземпляра. Или создайте метод, который создает VC при нажатии кнопки «Далее» и нажимает VC на контроллер навигации.

Вы можете использовать UITableViewindexPathsForSelectedRows() или аналогично получить выбор, а затем вызвать метод/установить переменную экземпляра на контроллере представления назначения.

Но серьезно, почему бы вам не использовать раскадровки?

+0

У меня уже есть следующий диспетчер представлений, созданный с помощью отдельного файла swift и xib. Возможно ли, чтобы я включил раскадровки в свой проект на этом этапе? – Onichan

Смежные вопросы