こんにちは、Song オブジェクトを保持する Playlist オブジェクトによって設定される UITableViewController があります。私が欲しいのは、ユーザーが TVC でプレイリスト名をタップして UIPageViewController を起動したときです。そのモデルは、UITableViewController でタップされたプレイリストによって初期化されます。次に、別のViewControllerで必要なものを表示します。
UIPageViewController の実装は、私のアプリでは次のように機能します。
ModelController --> RootViewController --> DataViewController (Apple の例と同様)
これまでのところすべて稼働していますが、タップされたプレイリストでモデルを正しく初期化できません。私の PlaylistsTVC には、目的のビュー コントローラーを定義する prepareForSegue メソッドがあり、arr はタップされたプレイリストの曲を保持しますが、それを ModelController に渡す方法がわかりません。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if (sender)
{
if ([segue.identifier isEqualToString:@"Segue"])
{
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSArray *arr = @[[[self.pdc.playlistMasterList objectAtIndex:indexPath.row] songs]];
NSLog(@"arr: %@", arr);
RootViewController *rvc = (RootViewController *)segue.destinationViewController;
rvc.hidesBottomBarWhenPushed = YES;
}
}
}
PlaylistDataController クラスに配列を設定してから、ModelController クラスに新しいインスタンスを作成しようとしましたが、うまくいきませんでした。また、NSUserDefaults の曲でいっぱいの配列をエンコードおよびデコードしてから、それを ModelController に渡そうとしましたが、うまくいくかどうかを確認するためだけに試してみました。
上記のセグエメソッドから、ページビューコントローラーのモデルを初期化する方法を教えてもらえますか? または、その問題に関する他のアイデアは大歓迎です。
ありがとう!