1

ユーザープロファイル画面に使用される、ナビゲーションバー付きのテーブルビューコントローラーがあります。tableviewには、ラベル、テキストフィールド、テキストビューを含む10個のカスタムセルがあり、ナビゲーションバーボタンは、tableviewcellのコンテンツの編集を有効/無効にするために使用されます。ユーザーは、そのビュー コントローラーのボタンを使用して、アプリ内の任意のコントローラーからこのユーザー プロファイル画面を読み込むことができます。私がやりたいことは、ユーザーがこのユーザープロファイル画面(tableview Controller)をどこからでも開くことを選択すると、表示モードのみが表示されることです。テキストフィールドとテキストビューを持つセルは編集できません。ただし、ユーザーがアプリの設定画面をナビゲートしてユーザー プロファイル画面に移動すると、セルの編集が有効または無効になる可能性があります。これに対する提案はありますか??

4

1 に答える 1

0

これを試して:

パート 1.UITableViewControllerクラスの準備

  1. .hで:
    • 追加... @property (nonatomic, assign) BOOL enableCellSelection;
      .
  2. .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 に答える