2016-05-06 10 views
1

私は毎日ランダムな見積もりを見ることができるアプリを作成しています。このアプリでは、実際にアプリを使用するには3つの質問がユーザーに表示されます。最後の質問は簡単な「あなたの好きなカテゴリ/トピックは何ですか?」です。このプロンプトで、ユーザーはセルをタップし、最初の "子"ビューコントローラーが見積もり自体であるタブバーコントローラーに移動します。UITableViewからUITabBarControllerへSegue

問題: 私は、ユーザーがUITableViewCellのと、彼らはそれらが持ち込まれTabBarController効果をタップ1をタップすることができるようにしたいです。私がこれまでに実行していますエラーが発生している写真です

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 
    } 




} 

最終的には、より多くのトピックがあり、より多くのセグを意味します。しかし、今のところ、私は2つの

始まるよ各TabBarControllerについてseguesは次のとおりです。 "bookSegue" "businessSegue"

タブバーは、以下のとおりです。 "bookQuoteTabBar" と "businessQuoteTabBar"

最初の「子」ビューコントローラは次のとおりです。 「bookQuoteScreen」 「businessQuoteScreen」

私は何か他のものを書いていますか?私は、オブジェクトの固有名詞、アイデンティティー、クラスを正しく指定しましたか?より多くの情報や参考文献が必要な場合は、追加するものをコメントしてください。数分以内に追加します。前もって感謝します!

---------最近の編集---------

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が0123を認識しないことを示していますおよびbusinessQuoteScreenを有効なタイプとして有効にします。強調表示された行に、例えば。

タイプ(「?」の後に指定)は、.swiftファイルで定義されているクラス名と一致する必要があります。使用する名前が "BusinessQuoteScreen.swift"と "BooksQuoteScreen.swift"で定義されているクラス名(おそらく)と一致することを確認してください。これらのファイルの内容を見ることなく、私は確信することはできませんが、大文字を大文字にする必要があると思われます(クラス名にする必要があります)。 に "s"が必要です。 QuoteScreen ":

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

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

私はまだ彼らすべてが一致するように見える場合でも、同じエラーを取得しています。私はエリアを欠いていますか?それを一般的に設定する方法を説明できますか?たぶん、私はこれをやり直すことができ、2回目の周りを混乱させることはありません。他の人もそれから学ぶことができるかもしれないので、彼らは私がやったばかげたミスをしません。 –

+0

@JNorris名前などを二重にチェックした場合、Xcodeはあなたの2つのスワイプファイルを "ターゲット"に含めるべきでないことを認識している可能性があります。あなたはチェックすることができます:左側のリストの各ファイルを選択し、右側にある正方形のアイコン(「クイックヘルプ」の上)をクリックして、ファイルインスペクタを表示します。さらにRHSをダウンすると、「Target membership」が表示されます。そこにはどのような名前が表示されていますか? – pbasdf

+0

最初に「Quote Daily」と表示されていますが、チェックマークが付いています。 2番目には、「DailyTests Quote」と表示されています。最後に「DailyUITests Quote」と表示されていないどちらのファイルも同じです。 –

関連する問題