Проблема 1:
В верхней части класса YourTableViewController (не внутри класса, а на верхнем значении снаружи) реализации следующего протокола:
protocol MyTableViewControllerDelegate {
func tableViewController(controller: YourTableViewController, didFinishPicking Item item: SomeItemYouWantToPassBack)
}
Тогда вам необходимо выполнить следующие действия : В вашей таблице Просмотр класса контроллера (YourTableViewController) реализует следующие:
слабый делегат var: MyTableViewControllerDele Ворота? \ стиль для реализации делегатов.
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let itemYouWantToPassBackToVC: SomeItemYouWantToPassBack = dataImplementedInTableView[indexPath.row]
delegate?.tableViewController(self, didFinishPickingItem item: itemYouWantToPassBackToVC)
dismissViewControllerAnimated(true, completion: nil)
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
затем в предыдущей VC вы реализуете функцию, созданную в протоколе:
func tableViewController(controller: YourTableViewController, didFinishPicking Item item: SomeItemYouWantToPassBack) {
// Here you take the "item" parameter and use it for your purpose. It is the item you wanted to pass back here
}
В дополнение читать документацию яблока, чтобы узнать больше о протоколах и делегатов.
Задача 2:
OK ... в данном случае я хотел бы предложить следующее: реализовать следующую функцию в VC1:
@IBAction func unwindToVC1() {
\\you can leave this place empty
}
Затем, обратите внимание на эти слова: В раскадровку находке контроллер просмотра для TableView номер 2 (тот, который показывает все подкатегории), а поверх него вы увидите три кнопки. CTRL + перетащите желтый цвет в красную выходную дверь и выберите «unwindToVC1» из всплывающего окна.
В документе Outline (вид списка, отображающий все, что у вас есть в storyBoard) найдите вновь созданный сегмент и дайте ему имя, скажем, «segueVC1».
Тогда в TableViewControllerNumberTwo осуществить это:
override func tableView(tableView: UITableView, didSelectItemAtIndexpath indexPath: NSIndexPath) {
let item1 = yourDataModel[indexPath.row]
performSegueWithIdentifier("segueVC1", sender: item1)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let segue.identifier == "segueVC1" {
let vc = segue.destinationViewController as VC1 \\ VC1 is the first vc you want to segue to
vc.modelToReceive = sender as modelToReceiveClass
}
}
Посмотрите на этот пост, он может помочь: http://stackoverflow.com/questions/12569316/does-anyone-know-what-the-new -exit-icon-is-used-for-when-editing-storyboards-usi –