ストーリーボードは初めてで、カスタムの初期化に問題があります。
ストーリーボードを使用する前に、カスタム初期化を持つテーブルからビュー コントローラーをプッシュするためにこれを行っていました。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Creating Dummy Hotel
HotelItem *hotel = [[HotelItem alloc] init];
HotelDetailViewController *controller = [HotelDetailViewController controllerWithHotel:hotel];
controller.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:controller animated:YES];
[hotel release];
}
ストーリーボードでは、次のようになった didSelectRowAtIndexPath の代わりに prepareForSegue を使用しています。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//Creating Dummy Hotel
HotelItem *hotel = [[HotelItem alloc] init];
hotel.name = @"Hotelucho";
// Make sure we're referring to the correct segue
if ([[segue identifier] isEqualToString:@"ShowSelectedHotel"]) {
HotelDetailViewController *controller = [segue destinationViewController];
}
}
プライベート変数 "hotel" を変更して [segue destinationViewController] の直後にプロパティを設定できることはわかっていますが、カスタムの init メソッドを呼び出す方が便利だと思います。
これを達成する方法はありますか?