Xamarin iOS:如何将视图从故事板连接到控制器?

时间:2015-03-25 16:14:51

标签: ios iphone xcode uiviewcontroller xamarin

我有一个带有ViewController的故事板,在ViewController中我有一个带有原型单元格的UICollectionView。

我已经有一个" MyCollectionViewController" (因为我尝试将我的CollectionViewController包装在ViewController中)。现在我想重用那个控制器,但我无法弄清楚如何使用新的CollectionViewController连接故事板中的CollectionView。 将CollectionView从CollectionViewController分配给ViewController中的Outlet似乎无法正常工作。

我知道我可以将单元格原型设为.xib文件并在代码中创建CollectionView。但我的雇主更喜欢在故事板中放置所有内容以便于维护。

编辑: chkn的答案非常好。 要将父视图控制器连接到容器,您可以像这样覆盖PrepareSegue方法。

    public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
    {
        base.PrepareForSegue (segue, sender);
        if (segue.SourceViewController == this) {
            if (segue.DestinationViewController.GetType () == typeof(MyChildViewController)) {
                MyChildViewController childViewController = segue.DestinationViewController as MyChildViewController;
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

您无法将视图从一个视图控制器分配到另一个视图控制器上的插座。

但是,您可以使用包含集合视图的单个视图控制器,然后使用容器视图将该视图控制器嵌入到其他视图控制器中。

只需创建托管UICollectionView的视图控制器(它很容易使用UICollectionViewController,但这并不重要)。然后在要嵌入的每个视图控制器上,从工具箱中拖动Container View并删除随附的默认视图控制器。然后,按住Ctrl键并从容器视图拖动到要嵌入的共享UICollectionView控制器。

您的故事板可能如下所示:

Screenshot

这个例子可以在这里找到:
https://github.com/chkn/StoryboardExamples/tree/master/CollectionViewReuse