ユーザープロファイル画面に使用される、ナビゲーションバー付きのテーブルビューコントローラーがあります。tableviewには、ラベル、テキストフィールド、テキストビューを含む10個のカスタムセルがあり、ナビゲーションバーボタンは、tableviewcellのコンテンツの編集を有効/無効にするために使用されます。ユーザーは、そのビュー コントローラーのボタンを使用して、アプリ内の任意のコントローラーからこのユーザー プロファイル画面を読み込むことができます。私がやりたいことは、ユーザーがこのユーザープロファイル画面(tableview Controller)をどこからでも開くことを選択すると、表示モードのみが表示されることです。テキストフィールドとテキストビューを持つセルは編集できません。ただし、ユーザーがアプリの設定画面をナビゲートしてユーザー プロファイル画面に移動すると、セルの編集が有効または無効になる可能性があります。これに対する提案はありますか??
1 に答える
0
これを試して:
パート 1.UITableViewController
クラスの準備
- .hで:
- 追加...
@property (nonatomic, assign) BOOL enableCellSelection;
.
- 追加...
.mで
で
-initWithStyle:
...- (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:style]; if (self) { enableCellSelection = YES; } return self; }
で
-cellForRowAtIndexPath:
...- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //your normal cell handling code [cell setUserInteractionEnabled:(enableCellSelection ? UITableViewCellSelectionStyleBlue : UITableViewCellSelectionStyleNone)]; return cell; }
パート 2.UITableViewController
クラスの表示
どんな方法から...
//alloc/init normally
MyTableViewController *tvcObj = [[MyTableViewController alloc] init];
//explicitly disable the cell selection ability
tvcObj.enableCellSelection = NO;
//display the tableView
[self.navigationController pushViewController:tvcObj animated:YES];
基本的に、 を表示する前に設定するプロパティを作成しtableView
、テーブルが読み込まれると、このプロパティが読み取られ、セル全体の相互作用機能が適切に設定されます。
これは私が考えることができる最高です
于 2013-12-02T09:51:53.857 に答える