【发布时间】:2012-03-24 16:34:09
【问题描述】:
我是 iOS 应用程序开发的菜鸟。
我试图创建“UITableView -> to Detail View”应用程序。
并在工程模板中找到“Master-Detail Application”工程。
然后我试了一下。然后问题来了。 我有一个动态表视图,所以我必须让详细视图看起来也动态。 像这样:
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>
问题是,在我使用后退按钮菜单返回表格(列表)视图后,
然后我再次从列表的不同行中选择项目,然后详细视图不会更改为选定的项目值。
我确实使用 (MasterView) -> initWithNibName -> (DetailView)
传递了值
我的环境:XCode 4.2 for SnowLeopard,iOS SDK 5
更新
在我检查日志后,参数值确实以正确的值传递。但是我设置的 UIlabel 的 IBOutlet 并没有改变它的值。
这是我的代码:
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;
}
谢谢
【问题讨论】:
标签: objective-c ios xcode4.2 osx-snow-leopard