Я пытаюсь прочитать ссылку на файл изображения из plist и сделать отображение изображения в подробном представлении. хотя я могу сделать это для своего макета таблицы, у меня возникают проблемы с моим файлом nib DetailViewController
. Я надеюсь, что кто-то может помочь мне исправить проблему и объяснить мне, где я ошибаюсь. Следующее с кодом - это мое объяснение того, что я ДУМАЮ, что я делаю. Если бы вы могли объяснить мне, что я делаю не так, как показать мне, что я должен делать, я бы очень признателен. Я пытаюсь учиться так же, как пытаюсь заставить все работать.Прочитать имя изображения из проблемы синтаксиса plist?
Я думаю, что проблема заключается в двух местах. Первый мой didSelectRowAtIndexPath
метод:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//Get the dictionary of the selected data source.
NSDictionary *dictionary = [[[self.localSites objectAtIndex:indexPath.section]objectForKey:@"rowData"] objectAtIndex:indexPath.row];
TableDetailViewController *controller = [[TableDetailViewController alloc] initWithNibName:@"TableDetailViewController" bundle:[NSBundle mainBundle]];
controller.title = [dictionary objectForKey:@"Location"];
controller.dText = [dictionary objectForKey:@"details"];
// THIS IS WHERE THE PROBLEM IS
NSString *tiny = [dictionary objectForKey:@"thumb"];
controller.mainImage = [UIImage imageNamed:tiny];
[self.navigationController pushViewController:controller animated:YES];
[controller release];
}
В коде выше отмечено //THIS IS WHERE I THINK THE PROBLEM IS
, что я пытаюсь сделать, это взять ссылку на изображение, содержащиеся в строке в PLIST и использовать ссылку, чтобы получить изображение. Этот подход отлично работает в моем методе cellForRowAtIndexPath, где я использую его, чтобы заполнить левую сторону таблицы эскизами, указанными на моем plist.
В приведенном выше коде относится к строке я попытался подключиться к UIImageView
розетке в моей TableDetailViewController.xib
через мой TableDetailViewController.m
файл, как показано ниже. Здесь я думаю, что проблема номер два:
- (void)viewWillAppear:(BOOL)animated
{
[super viewDidLoad];
//This Bit says that the text contained in UITextView blurb is the string dText, which is used in my didSelectRowAtIndex method
blurb.text = dText;
//This is where I try to do the same thing by saying that UIImageView topImage is the NSString mainImage which I use in my didSelectRowAtIndex method
topImage.image = mainImage;
}
Моя логика в том, что topImage является UIImageView и mainImage является строка, содержащая представление изображения, которое в моем методе didSelectRowAtIndex я прохожу значение ключа «пальца», содержащийся в моем файле plist.
Однако вышеуказанное предупреждает. Может ли кто-нибудь помочь?
Спасибо, что нашли время для чтения.
woukd вам нравится больше объяснять, как вы его решаете? или опубликовать пример вашего кода? – Albert
Альберт, код как указано выше. В файле заголовка TableDetailViewController.h вместо написания NSString * mainImage пишу UIIMage * mainImage. Это простое изменение по причинам, описанным ниже. Остальная часть приведенного выше кода верна. –