如何将自定义 UIViewController 添加到现有的 XIB?

Posted

技术标签:

【中文标题】如何将自定义 UIViewController 添加到现有的 XIB?【英文标题】:How do you add a custom UIViewController to existing XIB? 【发布时间】:2013-02-06 21:17:38 【问题描述】:

我刚刚开始接触 MonoTouch,并且有一些最基本的问题。在他们的教程中,他们介绍了通过 XCode 的 Interface Builder 直接向 XIB 添加控件。但是,我不知道如何向 XIB 添加自定义控件。

我已经看到了许多将基础 UICollectionView 子类化以根据自己的目的对其进行自定义的示例,并且在我的项目中的 C# 代码中完成了此操作。我的问题是,如何将 UICollectionView 的特定子类添加到 XIB 以在项目中使用?

【问题讨论】:

我会把它放在 cmets 中,因为我不记得正确的选项卡,但是侧视图中有一个选项卡(其中包含有关大小的信息,以及特定于该控件的信息) 有一个选项卡说明视图控件是什么类,您可以将其更改为您的子类。 所以我在屏幕上添加了一个普通的 UICollectionView,然后更改一个属性来引用我项目中定义的 MyUICollectionView?也许是身份检查器上的“自定义类”属性? 【参考方案1】:

对于一个普通的 UIView,你需要经历的基本步骤是:

    在 C# 中以类的形式创建您的自定义视图

    public class MyView
    
    
    

    添加UIView基类,添加Register属性并添加两个构造函数:

    [Register("MyView")]
    public class MyView : UIView
    
        public MyView() 
        public MyView(IntPtr handle) : base(handle) 
    
    

    为了让它做一些有用的事情,然后添加一个 Draw 实现:

    public override Draw(RectangleF rect)
    
        var context = UIGraphics.CurrentGraphics();
        UIColor.Red.SetFill();
        context.FillEclipseInRect(rect);
    
    

    保存并构建您的项目

    现在在要使用自定义视图的 UIViewController 的 XIB 编辑器中,将 UIView 添加到设计图面

    选择该 UIView 并在 Identity Inspector 中,将 UIView 的“自定义类”设置为“MyView”

    将所有内容保存在 xCode 中

    返回 MonoDevelop,构建并运行

此流程的视频可在以下位置观看: - http://www.youtube.com/watch?v=ggwO46dd-50&feature=youtube_gdata

对于自定义 UICollectionView、UILabel、UITableViewCell 或任何其他 UIView 基类,您可以遵循类似的步骤,只是使用不同的基类和不同的构造函数以支持特定的 View。

有关自定义表格单元格的视频,请参阅:http://slodge.blogspot.co.uk/2013/01/uitableviewcell-using-xib-editor.html

【讨论】:

以上是关于如何将自定义 UIViewController 添加到现有的 XIB?的主要内容,如果未能解决你的问题,请参考以下文章

将自定义 UITableViewCell 从 nib 加载到 Swift 中的 UIViewController

如何将自定义视图与 TabBar 集成?

如何使 UIViewController 成为单独 UITableViewController 的委托?

如何将 UIViewController/UITabBar 添加到 UITableViewCell?

将自定义组件添加到 EXTJS 图表

Netsuite 将自定义字段添加到交易列字段