UINavigationController からルート UITableViewController にデータを渡すにはどうすればよいですか? ECSlidingViewController ( https://github.com/edgecase/ECSlidingViewController ) を実装しました。ユーザーは、UINavigationController の上にある tableView から情報を表示したい、さまざまな URL に対応するメニュー内のセルの 1 つを選択します。(UINavigationControllerをストーリーボードにドラッグするデフォルトの組み合わせを知っています)。スライディングメニューからnavigationControllerにデータを取得できるようになりましたが、同じ情報をテーブルビューに渡そうとしていますか?
私のメニューには次のものがあります。
UINavigationController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"NavigationTop"];
newTopViewController = [(NavigationTopViewController*)newTopViewController initWithCinema:self.myCinema];
UINaviationController で:
- (id)initWithCinema:(Cinema *)cinema {
self = [super init];
if(self) {
_myCinema = [[Cinema alloc] init];
_myCinema = cinema;
}
return self;
}
- (void) viewDidLoad {
[super viewDidLoad];
// this log works I get the info to here.
NSLog(@"url(navigation):%@", self.myCinema.cinemaURL);
//MoviesTableViewController *moviesTableViewController = [[MoviesTableViewController alloc] initWithCinema:self.myCinema];
//UITableViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MoviesTable"];
//NavigationTopViewController *newTopViewController = [[NavigationTopViewController alloc] initWithCinema:self.myCinema];
//newTopViewController = [(MoviesTableViewController *)newTopViewController initWithCinema:self.myCinema];
//[self performSegueWithIdentifier:nil sender:self.myCinema];
[self prepareForSegue:nil sender:self.myCinema.cinemaURL];
}
私のUITableViewで:
- (void)setCinema:(Cinema *)cinema {
// works here too
NSLog(@"Table(setCinema):%@", cinema.cinemaURL);
self.myCinema = [[Cinema alloc] init];
if(!cinema) {
cinema.cityIndex = kAstanaIndex;
cinema.name = kKeruen;
cinema.nameForText = kKeruenText;
cinema.cinemaURL = kKeruenURL;
cinema.cinemaURLTomorrow = kKeruenURLtomorrow;
}
self.myCinema = cinema;
// works here too!!!
NSLog(@"Table(myCinema):%@", self.myCinema.cinemaURL);
}
ただし、viewDidLoad ではなくなっています。
- (void)viewDidLoad
{
[super viewDidLoad];
// set delegate to self
self.tableView.delegate = self;
// set loading theater's url
// does not work here: I GET NULL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
NSLog(@"url(moviesTable):%@", self.myCinema.cinemaURL);
_model = [[MovieModel alloc] initWithURL:self.myCinema.cinemaURL];
}
少なくとも私にとっては、私が試した方法はどれもありません(ナビゲーションでコメントしました...)。何か提案があれば教えてください。前もって感謝します。