2016-05-06 3 views
1

Я создаю приложение, которое позволяет пользователю просматривать случайную цитату каждый день. В этом приложении пользователю задают 3 вопроса, прежде чем смогут использовать приложение. Последний вопрос - простая «Какая ваша любимая категория/тема». С помощью этого приглашения пользователь нажимает на ячейку и переносится в контроллер панели вкладок, причем первым контроллером представления «ребенка» является сама цитата.Segue от UITableView до UITabBarController

Проблема: Я хочу, чтобы пользователь мог нажать на UITableViewCell и тот, который они задействовать эффекты, которые TabBarController они доведены до.

enter image description here

Это фото с ошибками я впадающей до сих пор. Вот код.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 


    if(segue.identifier == "bookSegue") 
    { 
     let bookQuoteTabBar = segue.destinationViewController as! UITabBarController 

     let bookQuoteScreen = bookQuoteTabBar.viewControllers?[0] as? bookQuoteScreen 


    } 

    else if(segue.identifier == "businessSegue") { 

     let businessQuoteTabBar: UITabBarController = segue.destinationViewController as! UITabBarController 
     let businessQuoteScreen = businessQuoteTabBar.viewControllers?[0] as? businessQuoteScreen 
    } 




} 

В конце концов, будет больше тем, что означает больше segues. Но сейчас, я начинаю с двух

The перетекает для каждого TabBarController являются: "bookSegue" "businessSegue"

ТАВ Бары являются: "bookQuoteTabBar" и "businessQuoteTabBar"

Первыми контроллерами просмотра «Ребенок» являются: «bookQuoteScreen» «businessQuoteScreen»

Должен ли я написать что-то еще? Правильно ли я назвал Segues, идентификаторы и классы каждого объекта? Если вам нужна дополнительная информация или ссылки, прокомментируйте, что я должен добавить, и я добавлю его в течение нескольких минут. Заранее спасибо!

--------- Последние правки ---------

BooksQuoteScreen:

import Foundation 
import UIKit 

class BooksQuoteScreen: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

BusinessQuoteScreen:

import Foundation 
import UIKit 
import Social 

class BusinessQuoteScreen: UIViewController { 

//============================// 
//********** Outlets *********// 
//============================// 

let utility = Utility() 
@IBOutlet weak var quoteDisplay: UILabel! 
@IBOutlet weak var authorDisplay: UILabel! 
@IBOutlet weak var quoteBackground: UIImageView! 
... 
} 

enter image description here

ответ

0

Ошибки на снимке экрана («Использование необъявленного типа ....») показывают, что Xcode не распознает bookQuoteScreen и businessQuoteScreen действительными типами. В выделенных строках, например.

let bookQuoteScreen = bookQuoteTabBar.viewControllers?[0] as? bookQuoteScreen 

тип (указанный после «как?») Должен совпадать с именем класса, определенным в ваших .swift-файлах. Внимательно проверьте, что используемые имена соответствуют именам классов (предположительно), определенным в «BusinessQuoteScreen.swift» и «BooksQuoteScreen.swift». Не видя содержимого этих файлов, я не могу быть уверенным, но я подозреваю, что ведущий персонаж должен быть в верхнем регистре (это должно быть для имен классов), и вам может понадобиться «s» в ». Книга s QuoteScreen ":

let bookQuoteScreen = bookQuoteTabBar.viewControllers?[0] as? BooksQuoteScreen 

и

let businessQuoteScreen = businessQuoteTabBar.viewControllers?[0] as? BusinessQuoteScreen 
+0

я все еще получаю ту же ошибку, даже если все они, кажется, совпадают.Мне не хватает области? Не могли бы вы объяснить, как настроить его вообще? Возможно, я смогу повторить это и не испортить второй раз. Другие могут также учиться у него, чтобы они не совершали тупую ошибку, которую я совершил. –

+0

@JNorris Если вы дважды проверили имена и т. Д., Возможно, что Xcode не понимает, что ваши два быстрых файла должны быть включены в «цель». Вы можете проверить: выберите каждый файл в списке с левой стороны, затем с правой стороны щелкните значок квадрата (вверху «Быстрая справка»), чтобы показать «Инспектор файлов». Далее на RHS Xcode будет отображаться «Target membership» - какие имена перечислены там, и помечаются ли они? – pbasdf

+0

Первый говорит «Quote Daily», у него есть галочка. Второй говорит «Quote DailyTests», но не проверен. Последнее говорит «Quote DailyUITests», также не проверяется. Это одинаково для обоих файлов. –

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