加载。 XIB在一个班级

Posted

技术标签:

【中文标题】加载。 XIB在一个班级【英文标题】:Load. XIB in a class 【发布时间】:2012-06-20 17:12:18 【问题描述】:

我如何加载一个。 XIB 通过单击表格视图的行? 下面这个例子是一个类的一部分,因为我会提醒这个类的加载?

public override void RowSelected (UITableView tableView, NSIndexPath indexPath)

    tableView.DeselectRow (indexPath, true);

    //this.PresentModalViewController(home,true);

【问题讨论】:

你到底为什么要使用看起来像普通的 C 方法?使用 UITableViewController 中的 Objective-c 方法。 他的帖子被标记为 MonoTouch - 那是 C#,而不是 Obj-C 抱歉,我不知道你可以在不使用 Obj-C 的情况下为 iPhone 编程 该类与其余代码分离,我不能使用 this.PresentModalViewController(home,true); 【参考方案1】:

你的问题和cmets中没有太多细节......

如果您使用override RowSelected 方法,那么您很可能从UITableViewSource 继承了一个新类型,对吗?如果是这样,那么您应该使其构造函数保留对UITableViewController 的引用,并使用此引用稍后调用PresentModalViewController

例如

public class MyTableViewSource : UITableViewSource 

    UITableViewController ctrl;

    public MyTableViewSource (UITableViewController c)
    
        ctrl = c;
    

    public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
    
        tableView.DeselectRow (indexPath, true);
        var home = new UIViewController ("YouNibName", null); // default bundle
        ctrl.PresentModalViewController (home, true);
    

注意:我使用了UIViewController,但您可能已经为您的 NIB 定义了一个类型。

【讨论】:

错误:MonoTouch.UIKit.UITableView' 不包含 `PresentModalViewController' 的定义并且没有扩展方法 我正在继承 UITableViewSource。 同样的模式适用于UITableViewSource,你应该传递UITableViewController(不是视图本身)。我将更新代码示例...

以上是关于加载。 XIB在一个班级的主要内容,如果未能解决你的问题,请参考以下文章

致电 2nd XIB 和班级

iPad Xib 不显示

使用一个 xib 在加载时加载正确的方向 UIView 问题

将 XIB 加载到另一个 XIB 的视图中

按下按钮时如何加载另一个xib

如何在另一个视图中加载 xib 文件?