1

ユーザーがログインしてWebから記事を読むことができるシンプルなアプリを開発しています。最近、セグエの処理中に 2 番目のビューにタイトルを設定するコードを追加しましたが、残念ながら 2 ページ目のタイトルはゼロです。ビューコントローラーの変数に正しく接続されたストーリーボードのオブジェクトがあり、これを2回チェックしました。どうすればいいのかわかりません。何かを適切に開封したのかもしれません。

コード:

import UIKit

class MainViewController: UIViewController, UITabBarDelegate, UITabBarControllerDelegate, UIToolbarDelegate {
    @IBOutlet var titleLabel: UILabel!

    @IBOutlet var newsBar: UIToolbar!
    @IBOutlet var accountBar: UITabBar!

    override func viewDidLoad() {
        super.viewDidLoad()

        accountBar.delegate = self
        newsBar.delegate = self

        titleLabel.backgroundColor = UIColor(netHex: 0x00B0E4)

        titleLabel.textColor = UIColor.whiteColor()
        titleLabel.font = UIFont.boldSystemFontOfSize(16.0)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool {
        return true
    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let next: SectionViewController = segue.destinationViewController as! SectionViewController

        switch segue.identifier! {
            case "hardwareSectionSegue":
                next.titleLabel.text = "Rubrika o hardwaru"

            case "softwareSectionSegue":
                next.titleLabel.text = "Rubrika o softwaru"

            case "webSectionSegue":
                next.titleLabel.text = "Rubrika o webových technologiích"

            case "programmerSectionSegue":
                next.titleLabel.text = "Rubrika o programování"

            case "mobileSectionSegue":
                next.titleLabel.text = "Rubrika o mobilních zažízeních"

            default:
                next.titleLabel.text = "Rubrika nenalezena"

                next.titleLabel.backgroundColor = UIColor.redColor()
        }
    }

    @IBAction func unwindSegue(unwindSegue: UIStoryboardSegue) {}
}

に値を割り当てようとしている最初のケースの下で例外が発生しますnext.titleLabel.text。それはそうでtitleLabelはありません。

SectionViewController:

import UIKit

class SectionViewController: UIViewController {
    @IBOutlet var titleLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

その型キャストが原因であると確信していますが、セグエが次のビューの型がわからない場合、属性を適切に設定するにはどうすればよいですか?

4

1 に答える 1