为我的类源创建一个UIViewController,如何?

时间:2012-06-21 13:27:19

标签: c# iphone uiviewcontroller xamarin.ios uitableview

我有这个类来创建日期源。如何使用此类创建UIViewController

public partial class JogosSource : UITableViewSource {

    List<TableItem> tableItems; 
    string cellIdentifier = "TableCell";

    public JogosSource (List<TableItem> items)
    {
    }

    public override int RowsInSection (UITableView tableview, int section)
    {
    }

    public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
    {
    }

    public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
    {
    }
}

1 个答案:

答案 0 :(得分:1)

我不太确定我理解你的问题。

UITableViewSource是一个将UITableViewDelegateUITableViewDataSource组合成一个方便的类的类,其中包含两者的方法。

所以,如果你想在你的案例中使用那个类JogoSource,你需要在MT doc中编写

  

将此对象的实例分配给UITableView.Source属性。

要创建UITableView元素,您可以采用以下三种方式:

  • 子类UITableViewController(此类有自己的表视图)

  • 使用自己的XIB对UIViewController进行子类化,在主视图中拖动表格并将其与插座链接

  • 子类UIViewController(带有自己的XIB,可选),按代码创建表

可以在Source方法中为表视图实例设置ViewDidLoad。例如,您确定插座设置正确。

this.YourTable = new JogoSource(yourItems);

简单的建议

通常,当您处理UITableViewSource类时,您还可以在其构造函数中注入“控制”该源的控制器。例如,当您处理UINavigationController时,这可能很有用。

所以,我会将JogoSource的ctr更改为

public JogosSource (UIViewController injectedController, List<TableItem> items)
{
    // _controller is a private var of type UIViewController
    _controller = injectedController;
}

如果您的控制器已插入,例如,在UINavigationController中,您需要在选择行时显示一些详细信息,请通过_controller访问父级({{1}的实例1}})。

P.S。还有其他创建表的可能性,但我列出了主要表。此外,检查代码,因为我手写。

希望有所帮助。