0

私のアプリのナビゲーションコントローラーには、UITableViewContoller、次にViewControllerがあります。ユーザーがUITableViewContollrerでアイテムを選択すると、ViewControllerが呼び出されます。ユーザーが戻るボタンを押した場合、以前に選択されたアイテムを視覚的に表示する必要があります。UIImageを使用してこれを行うには、基本的に非表示または表示します。問題は、UITableViewの各セルを解析し、UITableが再度呼び出されたときにセルが以前に選択されたかどうかを判断するメソッドが見つからないことです。

UITableViewの背景は、コアデータのエンティティに基づいています。選択したアイテムは、コアデータの別のエンティティに保存されます。

4

1 に答える 1

0

まず、NSIndexPath * selectedIndexPathを宣言し、そのプロパティを作成します。現在tableViewDelegateにあります:

- (void)selectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(UITableViewScrollPosition)scrollPosition
{
    selectedIndexPath = indexPath;
}

tableViewでセルのIndexPathを選択しました。ナビゲーターバーの戻るボタンを押すと、ViewControllersviewWillApperが呼び出されます

- (void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];
  if(selectedIndexPath)
  {
   //if you have custom cell then you will get custom cell which was selected just use custom cell object in place of UITableViewCell

   UITableViewCell *cell = (UITableViewCell*)[YourtableView cellForRowAtIndexPath:selectedIndexPath];

   //You have cell reference which was selected when one view controller was pushed in navigation controller.
   // you can change image or label text which are present in your cell
   // cell.ImageView or cell.labelText anything
  }
}

お役に立てば幸いです。

于 2012-05-25T08:51:08.727 に答える