【问题标题】:How to initialize model from segue method如何从 segue 方法初始化模型
【发布时间】:2013-01-30 11:56:23
【问题描述】:

嗨,我有一个 UITableViewController,它由 Playlist 对象填充,它们包含 Song 对象。我想要的是当用户在我的 TVC 中点击播放列表名称时触发 UIPageViewController,我将通过在 UITableViewController 中点击的播放列表初始化其模型。然后它会在另一个 ViewController 中显示我想要的东西。

UIPageViewController 实现在我的应用中是这样工作的:

ModelController --> RootViewController --> DataViewController(就像苹果的例子)

到目前为止,我已经启动并运行了所有内容,但是我无法使用被点击的播放列表正确初始化模型。在我的 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,看看它是否可以工作,但也没有运气。

任何人都可以通过我上面描述的 segue 方法来帮助初始化页面视图控制器的模型吗?或者任何其他关于这个问题的想法都会非常受欢迎。

谢谢!

【问题讨论】:

    标签: uiviewcontroller model uitableview uipageviewcontroller uistoryboardsegue


    【解决方案1】:

    (我对你的控制器命名有点困惑......)

    如果您想使用RootViewController 中的数组,那么您的方法基本上是正确的。您需要 rvc 中的属性并将其设置为 prepareForSegue。例如:

    ...
    RootViewController *rvc = (RootViewController *)segue.destinationViewController;
    [rvc.theArray initWithArray:arr];
    ...
    

    【讨论】:

    • 嗨 SAE。就是这样,模型数组不在 RootViewController 中。在模型控制器中(同样,我正在关注 Apple 的页面视图控制器实现类)。目前我从我的应用程序委托中创建了一个全局变量并且它正在工作,但我对它并不感到兴奋。
    • 正如我所说:在 RootViewController 类中创建一个 NSArray 属性,并像在我的代码示例中一样设置它。这是在视图控制器之间传递数据的正常方法。
    猜你喜欢
    • 1970-01-01
    • 2012-04-12
    • 2016-08-13
    • 2020-02-05
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多