1

IB を使用しUITableViewControllerて Storyboard を作成しました。そして、UITableview's delegateをコントローラーに設定しました。にUITableViewはスタティック セルがあります。わずか2セクション。最初のセクションには、選択できない行が 3 つあります。最後のセクションには、選択可能な行が 1 つあります。これをすべてIBのみで設定しました。

次に、このメソッドを UITableViewController に実装しました。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"SELECTED");

    if (indexPath.section == 1 && indexPath.row == 0) {
        //login and report the result
        [self login];
    }
}

2 番目のセクションで唯一の行を選択すると、上記のメソッドが呼び出されません。何がうまくいかなかったのでしょう。UITableView のアウトレットインスペクタでもデリゲートの設定を再確認しました。すべて順調!

4

2 に答える 2

0

これを行うだけです:コントロールは、ストーリーボードからviewcontroller .hファイルにtableViewをドラッグし、exの@propertyを作成します。テーブルビュー。.h ファイルに再度追加します。次に、viewDidLoad の .m ファイルに次のように記述します。

    -(void)viewDidLoad{
       //your other code
       self.tableView.delegate = self;
       self.tableView.dataSource = self;
       //other code ...
     }

tableView がインスタンスを非表示にするという警告が表示されるため、プロパティ名には tblView を使用することをお勧めします。この助けを願っています。

于 2012-10-02T04:47:51.547 に答える
0

コンソールに NSLog ステートメントが表示されますか? viewDidAppearではどうですか、NSLog(@"Delegate: %@",tableView.delegate)

コンソールで NULL を取得しているかどうかを確認します。

dataSource が正しく接続されていることはわかっています。そうしないと、セルが表示されません。それはあなたのデリゲート接続でなければなりません=)

于 2012-10-01T17:39:01.023 に答える