Hier ist ein Szenario, dem ich begegne. Ich habe einen Login-Bildschirm mit UserName als eines der Felder. Der Benutzer kann einen Benutzer mit einer Dropdown-Liste auswählen (implementiert über eine Schaltfläche - um den Dropdown-Pfeil zu simulieren, einen Popover-Controller und eine Tabellenansicht). Ich habe einen Controller (UserNameController), der die Logik hat, die Benutzernamen abzurufen und sie an die darin enthaltene Tabellenansicht zu binden. Die UserNameController wird über ViewController.cs genannt, die das Textfeld und auf den Dropdown-Button Code hat:Textfeld aktualisieren, nachdem eine Zeile in der Tabellenansicht ausgewählt wurde Xamarin.IOS
var content = this.Storyboard.InstantiateViewController("UserNameLookUp") as UserNameController;
UIPopoverController popover = new UIPopoverController(content);
//popover.SetPopoverContentSize(new SizeF(80, 80), true);
popover.PresentFromRect(new RectangleF(float.Parse((sender.Frame.X + 115).ToString()),
float.Parse((sender.Frame.Y + 180).ToString())
, 80, 80), View, UIPopoverArrowDirection.Up, true);
und in UserNameController:
public override void ViewDidLoad()
{
string[] userName = new string[10];
tblVwUserName.Source = new TableSource(userName);
}
}
und TabelSource.cs sieht wie folgt aus:
public class TableSource : UITableViewSource
{
string[] TableItems;
string CellIdentifier = "TableCell";
public TableSource(string[] items)
{
TableItems = items;
}
public override nint RowsInSection(UITableView tableview, nint section)
{
return TableItems.Length;
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
UITableViewCell cell = tableView.DequeueReusableCell(CellIdentifier);
string item = TableItems[indexPath.Row];
//---- if there are no cells to reuse, create a new one
if (cell == null)
{ cell = new UITableViewCell(UITableViewCellStyle.Default, CellIdentifier); }
cell.TextLabel.Text = item;
return cell;
}
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
// HOW TO SET BACK THE USERNAME TEXT FIELD IN VIEWCONTROLLER? AND CLOSE THE POPUP
tableView.DeselectRow(indexPath, true);
}
}
Nun, wie muss ich den ausgewählten Benutzernamen im Textfeld des Viewcontrollers anzeigen und das Popup schließen?
Danke! Sid