2017-03-23 6 views
0

Ich versuche verschiedene Nibs in einem einzigen UITableView abhängig von einer Variablen innerhalb eines Modells zu laden. Ich habe anscheinend etwas, das logisch aussieht und nicht abstürzt, aber nur eine der xibs wird geladen und angezeigt.Xamarin.iOS - Mehrere XIBs in einem einzigen UITableView

Controller-Methode:

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); 
    } 

Table Methode

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; 
     } 
    } 

Ich habe 2 separate Xib Dateien und sie haben ihre eigenen Klassen, die Arbeit, die Ansichten zu füllen. Sie alle scheinen beim Debuggen verwendet zu werden, es ist nur ein Fall der Tabellenansicht zeigt nur 1 dieser Elemente.

Vielen Dank im Voraus und bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen, um zu sehen, was vor sich geht.

Antwort

0

Dies ist in Ziel C, aber es sollte nicht zu schwer zu konvertieren sein.

SO Post on a different question

+0

Danke @ Digitalsa1nt. Ich hatte davon gelesen, konnte aber keinen großen Unterschied zwischen dem und dem, was ich umgesetzt habe, sehen. Ich bin kein iOS-Experte, also bin ich mir nicht sicher, ob ich etwas übersehen habe. –

+0

hmm interessant. OK, nur um zu bestätigen, dass Sie den 'Bezeichner' für beide Nibs richtig gesetzt haben? – Digitalsa1nt

+0

Ja beide scheinen korrekt benannt zu sein und beide haben eindeutige Namen. Es ist seltsam, da es normalerweise mit einem Build-Fehler auftauchen würde, wenn das der Fall ist, also glaube ich nicht, dass es das ist. Es ist so, als ob eine der Ansichten nur versteckt oder nicht sichtbar ist, d. H. Das Debuggen Zeile für Zeile zeigt, dass jede Codezeile korrekt läuft und nicht einfach ausschneidet? –

Verwandte Themen