Как сбросить подробное представление в приложении с основным и подробным представлением? Например, в моем основном представлении просто перечислены имена, и когда вы выбираете имя, мне нужны сведения о человеке, которого вы выбрали. Что приложение будет делать. Однако, когда я нажимаю кнопку «Назад» в подробном представлении и выбираю другое имя, подробное представление остается с первым выбранным элементом. Как сбросить этот подробный вид, чтобы он отображал детали всего, что выбрано?
У меня есть это в моем контроллере просмотра деталей (профиль - это класс):
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil title:(NSString *)name details:(Profile *)profile{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"Detail", @"Detail");
NSLog(@"Details: %@", [profile lastName]);
_detailProfile = profile;
}
return self;
}
И это в моем masterviewcontroller:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.detailViewController) {
//self.detailViewController = [[MediaDirectoryDetailViewController alloc] initWithNibName:@"MediaDirectoryDetailViewController" bundle:nil];
_showProfile = [_profileArray objectAtIndex:indexPath.row];
self.detailViewController = [[MediaDirectoryDetailViewController alloc] initWithNibName:@"MediaDirectoryDetailViewController" bundle:nil title:@"Detail" details:_showProfile];
}
NSDate *object = _objects[indexPath.row];
self.detailViewController.detailItem = object;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
ОТРЕДАКТИРОВАНО ИЗ ПОЛУЧЕННОГО ОТВЕТА
Ok. detailProfile является свойством контроллера подробного представления, и я создал метод:
@property (strong, nonatomic) Profile *detailProfile;
-(void)setDetailProfile:(Profile *)profile;
Реализовано следующим образом:
-(void)setDetailProfile:(Profile *)profile{
NSLog(@"Going to display profile: %@, %@", [profile lastName], [profile firstName]);
[firstName setText:[profile firstName]];
[lastName setText:[profile lastName]];
}
Теперь по какой-то причине мои метки firstName и lastName не обновляются.
В мастере сделал следующее:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.detailViewController) {
//self.detailViewController = [[MediaDirectoryDetailViewController alloc] initWithNibName:@"MediaDirectoryDetailViewController" bundle:nil];
_showProfile = [_profileArray objectAtIndex:indexPath.row];
NSLog(@"Profile selected last name: %@", [_showProfile lastName]);
// self.detailViewController = [[MediaDirectoryDetailViewController alloc] initWithNibName:@"MediaDirectoryDetailViewController" bundle:nil title:@"Detail" details:_showProfile];
self.detailViewController = [[MediaDirectoryDetailViewController alloc] initWithNibName:@"MediaDirectoryDetailViewController" bundle:nil title:@"Detail"];
self.detailViewController.detailProfile = _showProfile;
}
NSDate *object = _objects[indexPath.row];
self.detailViewController.detailItem = object;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
Мои выходные данные в журнале не обновляются при выборе новых элементов — после возврата из подробного представления — и мои метки обновляются.