Я - разработчик приложений для iOS.
Я пытаюсь создать приложение «UITableView -> для подробного просмотра».
И узнал проект «Мастер-детализация» в шаблоне проекта.Xcode 4.2 Snowleopard Master-Detail Устранение неполадок приложений
Затем я попробовал. Тогда проблема пришла. У меня был динамический вид таблицы, поэтому я должен сделать динамический вид детализированным. Как это:
Table View Detail View
Item A Item A is an <item_A_description>, with <item_A_summary>
Item B Item B is an <item_B_description>, with <item_B_summary>
Item C Item C is an <item_C_description>, with <item_C_summary>
проблема, после того, как я вернусь к просмотру таблицы (список) с помощью назад кнопки меню, то я выбираю снова элемент из другой строки в списке, то Detail View не изменяется на выбранное значение Item.
я передать значение с помощью (MasterView) -> initWithNibName -> (DetailView)
Моя среда: XCode 4.2 для SnowLeopard, IOS SDK 5
Обновлено
После того как я проверить журнал, значение параметра прошло с правильным значением. Но IBOutlet UIlabel, который я установил, не изменил его ценность.
Это мой код:
MasterViewController.m:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
TheItems *a = [data objectAtIndex:[indexPath row]];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if (!self.detailViewController) {
self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPhone" bundle:nil withItemId:(NSString *)a.itemId];
}
[self.navigationController pushViewController:self.detailViewController animated:YES];
[self.detailViewController release];
}
}
DetailViewController.h:
@interface metapsDetailViewController : UIViewController <UISplitViewControllerDelegate>
{
NSString *itemId;
}
@property (strong, nonatomic) IBOutlet UILabel * detailItem;
@property (nonatomic, retain) NSString *itemId;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil withItemId:(NSString *)itemId;
DetailViewController.m:
@synthesize detailItem = _detailItem;
@synthesize itemId;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil withItemId:(NSString *)itemId
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"Detail", @"Detail");
self.itemId = itemId;
}
}
- (void)viewDidLoad
{
self.detailItem.text = self.itemId;
}
Благодаря
спасибо за ответ. Да, на самом деле я попытался использовать свойство в DetailViewController и передать значение в файле masterViewController didSelectRowAtIndexPath через это свойство 'self.detailViewController.itemId = a.itemId;' ... Но он также не работал – arufian
Вам следует реализовать изменение метки а также в detailViewController, посмотрите на редактирование. – ggfela
Спасибо, я даю ему попробовать. – arufian