Xamarin.iOS - 单个UITableView中的多个XIB

时间:2017-03-23 16:28:24

标签: xamarin xamarin.ios

我正在尝试根据模型中的变量将不同的nib加载到单个UITableView中。我似乎有一些看似合乎逻辑的东西并没有崩溃,但是,只有1个xib被加载和显示。

控制器方法:

private void populateTableData()
    {
        liveTipsTableView.RegisterNibForCellReuse(UINib.FromName("LiveTipCell_", null), "LiveTipCell_");
        liveTipsTableView.RegisterNibForCellReuse(UINib.FromName("NewsCell_", null), "NewsCell_");

        setListViewSource();
        Refresh();
        AddRefreshControl();
        Add(liveTipsTableView);
        liveTipsTableView.Add(RefreshControl);
    }

TableSource方法

public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
    {
        var localTip = _tips[indexPath.Row];

        if (localTip.NewsItem)
        {
            CellIdentifier = new NSString("NewsCell_");
            NewsCell_ cell = new NewsCell_();
            cell = tableView.DequeueReusableCell("NewsCell_") as NewsCell_;
            var views = NSBundle.MainBundle.LoadNib("NewsCell_", cell, null);
            cell = ObjCRuntime.Runtime.GetNSObject(views.ValueAt(0)) as NewsCell_;
            cell.SelectionStyle = UITableViewCellSelectionStyle.None;
            cell.BindDataToCell(localTip);
            return cell;
        }
        else
        {
            CellIdentifier = new NSString("LiveTipCell_");
            LiveTipCell_ cell = new LiveTipCell_();
            cell = tableView.DequeueReusableCell("LiveTipCell_") as LiveTipCell_;
            var views = NSBundle.MainBundle.LoadNib("LiveTipCell_", cell, null);
            cell = ObjCRuntime.Runtime.GetNSObject(views.ValueAt(0)) as LiveTipCell_;
            cell.SelectionStyle = UITableViewCellSelectionStyle.None;
            cell.BindDataToCell(localTip);
            return cell;
        }
    }

我有两个独立的Xib文件,它们有自己的类,用于填充视图。它们似乎都在调试时被使用,它只是表视图的一个案例,它只显示其中一个项目。

提前致谢,如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

这是目标C,但转换起来不应太难。

SO Post on a different question