1

UIViewController 内に UITableView を設定しようとしています。これを行っているのは、保存ボタンとキャンセル ボタンを備えたトップ バーを追加できるためです。ストーリーボードと静的セルを使用してテーブルビューをモデル化し、ユーザーからの入力を取得しています (Apple のカレンダー アプリの新しいイベントの作成を考えてみてください)。Xcode にビューがありますが、携帯電話またはシミュレーターで実行すると、テーブルビューが表示されません。Xcode での簡単なビューを次に示します。

ここに画像の説明を入力

そして、これは実行時の表示方法です。

ここに画像の説明を入力

デリゲートの追加やデータソースの設定などについて読んだことがありますが、実際には、これはすべて、テキスト フィールドを持つ静的セルになり、データは読み込まれません。なぜこれが起こっているのですか?それを修正するために何ができますか? ありがとう!

4

4 に答える 4

2

@ Made2k 解決策を見つけたようですが、同じ問題でこれに遭遇した他の人は、 a 内の静的セルでのみ a を使用できることUITableViewUITableViewControllerに注意してください。これは十分に文書化された事実ではありませんがUITableViewController、静的セルのレイアウトを処理する方法しか知らないようですが、通常は、プログラムまたは Storyboard/Nib を介して追加された UITableView のコンテンツの表示を処理するためにおよびプロトコルUIViewControllerを実装する必要があるだけです。 .UITableViewDelegateUITableViewDataSource

うまくいけば、これで誰かの時間を節約できます。@ Made2kのソリューションは問題ありませんが、ストーリーボードが不必要にビジーになります。を使用する必要がない場合はUIViewController、通常の内部で作業を行うだけでUITableViewController、頭痛の種を避けることができます。

于 2013-12-03T20:47:24.100 に答える
1

UITableViewaで aを使用する場合UIViewControllerは、ViewController をデータ ソースおよび TableView のデリゲートにしてから、メソッドを実装する必要があります。

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

静的テーブルの場合cellForRowAtIndexPath、静的セルのアウトレットを返します。詳細な説明については、 https ://stackoverflow.com/a/19110821/3110536 の回答をご覧ください。

于 2014-01-16T12:58:23.773 に答える
0

男、次のハックは本当にうまくいきます!あなたはそれを試してみるべきです!
私の要件では、静的セルにもボタンを追加したいと考えていました!そして、TableView の可視性を切り替えます

[self.tableView setHidden:YES/NO];

新しいデータで再ロードします

[self.tableView reloadData];

その方法で非常に多くのことが可能です!

https://stackoverflow.com/a/19110821/1752988

上記のリンクがお役に立てば幸いです。(Y)

于 2014-03-21T11:54:31.950 に答える