0
我想根據模型中的變量將不同的nibs加載到單個UITableView中。我似乎有一些看起來合乎邏輯並且不會崩潰的東西,但是,只有1個xib正在被加載和顯示。Xamarin.iOS - 單個UITableView中的多個XIBs
控制器的方法:
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;
}
}
我有2個獨立的XIB文件,他們有自己的班,其工作來填充的意見。它們似乎都在調試時使用,這只是表視圖的一種情況,只顯示其中的一項。
在此先感謝,如果您需要更多信息以瞭解發生了什麼,請告訴我。
Thanks @ Digitalsa1nt。我已閱讀了這篇文章,但看不出和我已經實施的很多不同。我不是iOS專家,所以不確定是否有什麼我在這裏忽略。 –
嗯有趣。好,只是爲了確認你已經爲兩個筆尖適當地設置了「標識符」? – Digitalsa1nt
是的,似乎都被正確命名,並且都有獨特的名稱。這很奇怪,因爲如果是這樣的話,它通常會彈出一個構建錯誤,所以我不認爲是這樣。就好像其中一個視圖隱藏或不可見,即逐行調試顯示每行代碼都正確運行並且不會被切除? –