0

セルにラベルと画像を表示する sqldata ファイルをロードするテーブル ビューがあります。イメージとその他のデータを次の VC にロードしたいのですが、ログを取得してファイル時間を引き戻すことさえできないようで、プッシュする機会がありません。それはすべてプログラムで行われているため、見つけるのが少し難しくなります。すべての助けに感謝します!!!

//テーブルビュー

   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath >*)indexPath {

       [self.tableView deselectRowAtIndexPath:indexPath animated:YES];

       ATPictureViewController *newView = [[ATPictureViewController alloc] init];
       
       newView.mainImageView.image=[tableView >cellForRowAtIndexPath:indexPath].imageView.image ;
       
       [self.navigationController pushViewController:newView animated:YES];
       
      // NSLog(@"Log33 %@",);
   }

   @end
   

これだと思った

newView.mainImageView.image=[tableView cellForRowAtIndexPath:indexPath].imageView.image;

でも何ももたらさない

    //vc.h
   
   #import <UIKit/UIKit.h>
   
   @interface ATPictureViewController : UIViewController{
       
       UIImageView *mainImage;
   }
   
   @property (strong, nonatomic) UIImageView *mainImageView;
   
   @end

ここで何かを呼び出すかどうかわからない

   //vc.m
   
   - (void)viewDidLoad
   {
       [super viewDidLoad];
       
       self.mainImageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 200,    200)];
       [self.view addSubview:self.mainImageView];
       
       self.mainImageView.image = ???????????
       
4

1 に答える 1

1

少なくとも 1 つ、場合によっては 2 つの問題があります。まず、didSelectRowAtIndexPath メソッドで mainImageView の画像を設定することはできません。ATPictureViewController のビューがその時点で読み込まれておらず、その mainImageView プロパティが nil になるためです。代わりに、ATPictureViewController で UIImage プロパティを作成し、その値を didSelectRowAtIndexPath の [tableView cellForRowAtIndexPath:indexPath].imageView.image に割り当てる必要があります。その後、ATPictureViewController の viewDidLoad メソッドで mainImageView の画像を設定できます。

もう 1 つの考えられる問題は、alloc init を使用して newView をインスタンス化することです。そのコントローラーのビューを作成した場所によっては、おそらく空のビューが表示されます。xib で表示する場合は initWithNibName:bundle: を、ストーリーボードで表示する場合は instantiateViewControllerWithIdentifier: を使用する必要があります。

于 2013-09-19T03:27:34.613 に答える