2015-11-11 2 views
-3

ОБНОВЛЕНО ВОПРОСАdidSelectRowAtIndexPath Segue Не Отправка

Кода в AppDelegate в моем приложении авариях/doensn't признает SEGUE когда segueing в MainStoryBoard, когда ниже код активен.

В моем приложении AppDelegate я добавляю следующие строки кода в didFinishLaunchingWithOptions для установки заголовка. Однако я не могу удалить код, иначе у меня не будет заголовка, и, к сожалению, он требует, чтобы он был rootViewController. Любые предложения, как перефразировать это? :

var tableVC:FeedTableViewController = FeedTableViewController(className: "ProductInfo") 

     let headerImage = UIImage(named:"header.png") 
     UINavigationBar.appearance().setBackgroundImage(headerImage, forBarMetrics:.Default) 
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default 

     var navigationVC:UINavigationController = UINavigationController(rootViewController: tableVC) 



     let frame = UIScreen.mainScreen().bounds 
     window = UIWindow(frame: frame) 

     window!.rootViewController = navigationVC 
     window!.makeKeyAndVisible() 

Когда я вынимать window код, который определяет rootVC и т.д. Я могу непосредственно перейти без проблем. Мой заголовок, который я установил в appDelegate, также исчезает.

Ошибка, с которой я столкнулся, состоит в том, что у приемника VC нет сегмента, называемого «mySegue». Приемник VC должен быть моим начальным VC и установлен как начальный VC в Раскадке.

Сег выполняется на didSelectRowAtIndexPath.

Почему? Есть идеи?

благодарит заранее.

+0

Почему вы создаете экземпляр, удаляете и загружаете нить этой ячейки в методе делегата в первую очередь? – NSNoob

+0

Начал просто попробовать все. Пробовал без него, и он рушился, теперь, когда у меня есть это, он не падает, но он не работает. Не имеет смысла ... – lukaivicev

+0

У вас есть indexPath, на основе этого различайте ячейки. – NSNoob

ответ

0

Вы ошибаетесь. Отказ только для создания ячеек в cellForRowAtIndexPath. Чтобы получить ячейку после ее создания, используйте cellForRowAtIndexPath.

В didSelectRowAtIndexPath вам просто нужно позвонить performSegue.

Чтобы подготовиться к segue, вы можете использовать indexPath для информирования конечного контроллера о любых данных, которые ему необходимо знать.

Лучше: перетащите сегмент не из символа контроллера, а из самой ячейки. Вам тогда не нужен didSelectRowAtIndexPath, но он может обрабатывать всю логику в prepareForSegue.

sender будет ячейкой, и вы можете получить indexPath с tableView.indexPathForCell(cell).

+0

Просто добавил в свой ответ, что я уже использую prepareForSegue. Можете ли вы дать мне строку кода, необходимую для метода 'prepareForSegue', в частности для indexPath? Мне трудно понять, как использовать indexPath в методе. – lukaivicev

+0

Индексный путь может предоставить вам доступ к вашей модели данных. Вы не сообщили нам ничего о своей модели данных. Если вы сбиты с толку, изучите шаблон [MVC] (https://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html) (Model View Controller). – Mundi

+0

Я обновил вопрос. – lukaivicev

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