カスタムtableviewcellを使用してUITableViewControllerのサブクラスをプログラムで初期化します

環境:xcode6、迅速

ルートコントローラーとしてSLPagingViewSwiftを使用しようとしていますが、ページの1つで、カスタムUITableViewControllerを使用したいと思います。

なぜ機能しないのかわかりません。常にスローしてください。 " 2015-02-06 23:03:18.228 xiaoyu [4825:46536]キャッチされない例外 'NSInternalInconsistencyException'が原因でアプリを終了しています。理由: '識別子PersonCellのセルをデキューできません。 -識別子のペン先またはクラスを登録するか、ストーリーボードのプロトタイプセルを接続する必要があります '"、およびストーリーボードで識別子を' PersonCell 'として定義済みです。

maincontrolelrのコードは次のとおりです。

var controller: SLPagingViewSwift?

var ctr1 = PersonTableViewController()
var ctr2 = UIViewController()
var ctr3 = UIViewController()

override func viewDidLoad() {
    super.viewDidLoad()


    var navTitleLabel1 = UILabel()
    navTitleLabel1.text = "Home"
    navTitleLabel1.font = UIFont(name: "Helvetica", size: 20)
    navTitleLabel1.textColor = UIColor.whiteColor()
    var navTitleLabel2 = UILabel()
    navTitleLabel2.text = "Discover"
    navTitleLabel2.font = UIFont(name: "Helvetica", size: 20)
    navTitleLabel2.textColor = UIColor.whiteColor()
    var navTitleLabel3 = UILabel()
    navTitleLabel3.text = "Activity"
    navTitleLabel3.font = UIFont(name: "Helvetica", size: 20)
    navTitleLabel3.textColor = UIColor.whiteColor()

    var orange = UIColor(red: 255/255, green: 69.0/255, blue: 0.0/255, alpha: 1.0)
    var gray = UIColor(red: 0.84, green: 0.84, blue: 0.84, alpha: 1.0)


    ctr1.title = "Ctr1"
    ctr1.view.backgroundColor = UIColor.whiteColor()
    ctr2.title = "Ctr2"
    ctr2.view.backgroundColor = UIColor.yellowColor()
    ctr3.title = "Ctr3"
    ctr3.view.backgroundColor = UIColor.blueColor()

    controller = SLPagingViewSwift(items: [navTitleLabel1, navTitleLabel2, navTitleLabel3], controllers: [ctr1,ctr2,ctr3], showPageControl: false)

    controller?.currentPageControlColor = UIColor.whiteColor()
    controller?.tintPageControlColor = UIColor(white: 0.799, alpha: 1.0)
    controller?.pagingViewMoving = ({ subviews in
        for v in subviews {
            var lbl = v as UILabel
            var c = gray

            if(lbl.frame.origin.x > 45 && lbl.frame.origin.x < 145) {
                c = self.gradient(Double(lbl.frame.origin.x), topX: Double(46), bottomX: Double(144), initC: orange, goal: gray)
            }
            else if (lbl.frame.origin.x > 145 && lbl.frame.origin.x < 245) {
                c = self.gradient(Double(lbl.frame.origin.x), topX: Double(146), bottomX: Double(244), initC: gray, goal: orange)
            }
            else if(lbl.frame.origin.x == 145){
                c = orange
            }
            lbl.textColor = c
        }
    })


    controller?.didChangedPage = ({ currentIndex in
        println(currentIndex)
    })

    self.setViewControllers([controller!], animated: true)
}

PersonTableViewControllerはカスタムTableViewControllerであり、そのコントローラーでは、カスタムtableviewcellを使用しています。

PersonTableViewControllerのコードは次のとおりです。

    override func viewDidLoad() {
    super.viewDidLoad()

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()
}

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

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.
    return 1
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("PersonCell", forIndexPath: indexPath) as PersonTableViewCell
    cell.name.text = "aaa"

    return cell
}
fred02138

あなたのviewDidLoad方法は、テーブルビューのセルクラスを登録する必要があります。の方法UITableViewControllerは次のとおりです。

func registerClass(_ cellClass: AnyClass,forCellReuseIdentifier identifier: String)

したがって、あなたの場合は次のようになります。

ctr1.registerClass(PersonTableViewCell.self, forCellReuseIdentifier: "PersonCell")

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プログラムでカスタムテキストを使用してNSTextfieldを初期化します

分類Dev

カスタムTableViewCellのラベルは、常に初期化値を返します

分類Dev

カスタムクラスの配列を初期化します

分類Dev

プログラムでカスタムSSLContextを使用してSpringBootを構成します(mTLSの場合)

分類Dev

Swiftを使用してプログラムでカスタムUITableViewCell

分類Dev

カスタムクラスを使用してプログラムでUIViewを作成する(Swift 4)

分類Dev

Python:locals()を使用したプログラムによるクラスインスタンス変数の初期化

分類Dev

カスタム__new__を使用してクラスをサブクラス化するPython

分類Dev

Json.Netを使用してNameValueCollectionのカスタムサブクラスをシリアル化する

分類Dev

カスタムヘッダーを使用してプログラムでUICollectionViewを作成します

分類Dev

PythonのPlotlyを使用して、カスタムサイズのサブプロットとして円グラフをプロットする方法

分類Dev

エディターからのプロパティを使用してカスタムSKSpriteNodeを初期化します

分類Dev

CAShapeLayerを使用して円を描画し、プログラムでカスタムUIViewの中央に配置する方法

分類Dev

カスタム通知は、プログラムで生成されたドローアブルを使用します

分類Dev

XamarinはカスタムUINavigationBarを使用してUINavigationControllerをサブクラス化しました

分類Dev

TableViewCellカスタムクラスのIbOutletが初期化されていません

分類Dev

UIAlertControllerのサブクラスを初期化しています

分類Dev

SwiftUITextFieldサブクラスはプログラムでテキストの変更を処理します

分類Dev

カスタムドローアブルを使用してプログラムでスクリーンショットを作成する方法

分類Dev

サブビュー要素を使用してUIScrollViewをプログラムでスクロールする

分類Dev

プログラムでUINavigationControllerのUINavigationBarをサブクラス化する方法は?

分類Dev

カスタム要素のオブジェクト参照をドラッグアンドドロップで別のカスタム要素に渡します

分類Dev

Python:__ init__値に基づいてプログラムでサブクラスを作成します

分類Dev

サブクラス化されたボタンプロシージャがプログラムを台無しにするのはなぜですか?

分類Dev

awakeFromNibをサブクラス化して、スーパークラスのカスタムinit / setupメソッドを呼び出しますか?

分類Dev

プログラムでカスタムtableViewCellにUILabelを追加する

分類Dev

どのようにプログラム的にJavaでカフカクラスタとブローカーの情報を取得しますか?

分類Dev

オブジェクト指向プログラムを作成して、オブジェクトとインターフェースをスーパークラス、サブクラス、インターフェースでインスタンス化する方法

分類Dev

オブジェクト指向プログラムを作成して、オブジェクトとインターフェースをスーパークラス、サブクラス、インターフェースでインスタンス化する方法

Related 関連記事

  1. 1

    プログラムでカスタムテキストを使用してNSTextfieldを初期化します

  2. 2

    カスタムTableViewCellのラベルは、常に初期化値を返します

  3. 3

    カスタムクラスの配列を初期化します

  4. 4

    プログラムでカスタムSSLContextを使用してSpringBootを構成します(mTLSの場合)

  5. 5

    Swiftを使用してプログラムでカスタムUITableViewCell

  6. 6

    カスタムクラスを使用してプログラムでUIViewを作成する(Swift 4)

  7. 7

    Python:locals()を使用したプログラムによるクラスインスタンス変数の初期化

  8. 8

    カスタム__new__を使用してクラスをサブクラス化するPython

  9. 9

    Json.Netを使用してNameValueCollectionのカスタムサブクラスをシリアル化する

  10. 10

    カスタムヘッダーを使用してプログラムでUICollectionViewを作成します

  11. 11

    PythonのPlotlyを使用して、カスタムサイズのサブプロットとして円グラフをプロットする方法

  12. 12

    エディターからのプロパティを使用してカスタムSKSpriteNodeを初期化します

  13. 13

    CAShapeLayerを使用して円を描画し、プログラムでカスタムUIViewの中央に配置する方法

  14. 14

    カスタム通知は、プログラムで生成されたドローアブルを使用します

  15. 15

    XamarinはカスタムUINavigationBarを使用してUINavigationControllerをサブクラス化しました

  16. 16

    TableViewCellカスタムクラスのIbOutletが初期化されていません

  17. 17

    UIAlertControllerのサブクラスを初期化しています

  18. 18

    SwiftUITextFieldサブクラスはプログラムでテキストの変更を処理します

  19. 19

    カスタムドローアブルを使用してプログラムでスクリーンショットを作成する方法

  20. 20

    サブビュー要素を使用してUIScrollViewをプログラムでスクロールする

  21. 21

    プログラムでUINavigationControllerのUINavigationBarをサブクラス化する方法は?

  22. 22

    カスタム要素のオブジェクト参照をドラッグアンドドロップで別のカスタム要素に渡します

  23. 23

    Python:__ init__値に基づいてプログラムでサブクラスを作成します

  24. 24

    サブクラス化されたボタンプロシージャがプログラムを台無しにするのはなぜですか?

  25. 25

    awakeFromNibをサブクラス化して、スーパークラスのカスタムinit / setupメソッドを呼び出しますか?

  26. 26

    プログラムでカスタムtableViewCellにUILabelを追加する

  27. 27

    どのようにプログラム的にJavaでカフカクラスタとブローカーの情報を取得しますか?

  28. 28

    オブジェクト指向プログラムを作成して、オブジェクトとインターフェースをスーパークラス、サブクラス、インターフェースでインスタンス化する方法

  29. 29

    オブジェクト指向プログラムを作成して、オブジェクトとインターフェースをスーパークラス、サブクラス、インターフェースでインスタンス化する方法

ホットタグ

アーカイブ