2016-07-05 2 views
0

У меня возникли проблемы при выполнении segue при нажатии на ячейку tableView. Я вообще не использую раскадровку в приложении (удалил файл раскадровки), и мне было интересно, как я могу выполнить этот сеанс. Примечание:iOS Swift Segue из TableView Cell без раскадровки

  1. Мой Tableview находится в другом файле, чем ViewController, который отображает его. Так что в моем ViewController я есть эта строка:

    пусть Tableview = MyTableView (restaurants_data: рестораны, рамка: CGRect(), стиль: .Plain) view.addSubview (Tableview)

  2. Так с MyTableView.swift это файл, в котором функция didSelectRowAtIndexPath находится на я не могу сделать что-то вроде

    self.navigationController .showViewController (destinationVC, отправитель: ноль)?

Итак, как я выполняю когда пользователь нажимает на ячейку, учитывая, что я использую собственный TableView, и мое приложение не использует StoryBoard? спасибо заранее

+0

Подклассификация 'UITableView' не рекомендуется: http://stackoverflow.com/a/10250358/1305067. Если вы хотите инкапсулировать 'UITableView', возможно, завернув его в контроллер представления и добавив его в свое представление, поскольку контроллер дочернего представления может делать то, что вы хотите. Что касается доступа к 'navigationController', передайте его в качестве аргумента в ваш метод' MyTableView' 'init'. BTW, без раскадровки, нет segues, AFAIK - поэтому просто используйте обычный метод pushViewController. – paulvs

ответ

0

Добавить ссылку на ViewController внутри Tableview

и инициализирует его в ViewController инициализации контроллер Var: UIViewController

controller.presentViewController (viewControllerToPresent: UIViewController, анимированные: Bool , завершение: блок?>)

+0

, что не работает, потому что, как я уже сказал выше, метод «didSelectRowAtIndexPath» находится внутри класса UITableView, а не UITableViewController. UITableView не содержит метод presentViewController. – omzy

+0

Но 'viewControllerToPresent.navigationController' имеет метод' presentViewController'. – paulvs

+0

@paulvs, но вызов viewControllerToPresent.navigationController.pesentViewController (viewControllerToPresent: viewControllerToPresent., Анимированный: Bool, завершение ..) не имеет смысла вообще, не будет ли это? – omzy

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