我有一个表视图加载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 = ???????????
答案 0 :(得分:1)
至少有一个问题,可能是两个。首先,您不能在didSelectRowAtIndexPath方法中设置mainImageView的图像,因为此时尚未加载ATPictureViewController的视图,并且其mainImageView属性将为nil。相反,您应该在ATPictureViewController中创建一个UIImage属性,并将其值赋给didSelectRowAtIndexPath中的[tableView cellForRowAtIndexPath:indexPath] .imageView.image。然后,您可以在ATPictureViewController的viewDidLoad方法中设置mainImageView的图像。
另一个可能的问题是使用alloc init来实例化newView。根据您为该控制器创建视图的位置,您可能会得到一个空白视图。您应该使用initWithNibName:bundle:如果您在xib中查看,或者是instantiateViewControllerWithIdentifier:如果您在故事板中创建它。