私はiOSアプリケーション開発のノブです。
"UITableView - >詳細ビュー"アプリケーションを作成しようとしています。
プロジェクトテンプレートに「Master-Detail Application」プロジェクトが見つかりました。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>
私はボタンメニューをバック使用して、表(リスト)表示に戻って後、問題が、あり、 はその後、私は、リストの異なる行、詳細ビューから再び項目を選択します選択した項目値に変更されません。
私が使用して値を渡しました(MasterView) - > initWithNibName - >(DetailView)
私の環境:SnowLeopardのためのXCode 4.2、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;
}
おかげ
を感謝。うん、実際にはDetailViewControllerのプロパティを使ってみましたが、MasterViewControllerのdidSelectRowAtIndexPathの値を 'self.detailViewController.itemId = a.itemId;' ...という名前で渡しました。でもそれもうまくいきませんでした。 – arufian
ラベルの変更を実装してくださいdetailViewControllerにも、editを見てください。 – ggfela
ありがとう、私はそれを試してみてください。 – arufian