0

我有一个 TableViewCONtroller 显示图像列表和相关描述。我在prepare for segue 方法中将数据传递给详细视图。我传递的 MSMutableDrictionary 对象具有正确的值,我可以在详细视图 viewDidLoadMethod 的对象的 NSLog 中看到这一点。代码如下:

.h 详细视图控制器

@interface sitespecLargeImageDetail : UIViewController
@property (strong, nonatomic) NSMutableDictionary *details;
@property (strong, nonatomic) IBOutlet UIImage *largeImage;
@property (strong, nonatomic) IBOutlet UILabel *largeImageLabel;
@end

.m 细节视图控制器

@implementation sitespecLargeImageDetail

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
}
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.

_largeImage = [_details valueForKey:@"pbvurl"];
_largeImageLabel = [_details valueForKey:@"pbvdesc"];


NSLog(@"%@",  _largeImageLabel);


}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@结尾

这是 tableviewcontoller 中的 segue 事件的准备:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
sitespecLargeImageDetail *detailViewController = (sitespecLargeImageDetail    *)segue.destinationViewController;
detailViewController.details = _dictObj;

}

几个奇怪的事情:

  1. 当我在连接检查器中查看我的故事板中的详细视图控制器时,我可以看到标签和图像插座。我可以看到我已经连接了标签插座。很好,但是当视图加载时它不会更新!我知道详细视图中的 dict obj 获取数据,因为我可以 NSLog 并查看它。我用它来设置标签的 IBOutlet 但什么也没有。
  2. 在连接检查器中,我可以看到 UIImage 出口,但我无法将它连接到我放置在详细视图控制器中的 UIImage VIew,它根本不允许我连接它,没有错误,就在我从详细视图控制拖动时控制器我什至没有看到它!我看到了标签出口,但没有看到图像视图......
4

1 回答 1

0

首先,你想做的是_largeImageLabel.text = [_details valueForKey:@"pbvdesc"];.

如果没有.text您正在做的事情是使用 UILabel 指针指向 NSString,这显然不会导致您的预期行为!

至于 UIImage 插座,你需要的是一个 UIImageView 插座!UIImage 不是视图,因此它与界面构建器没有任何关系(您不能在情节提要中拖动 UIImage,只有视图可以组成界面)。

于 2013-05-21T11:01:10.080 回答