Voici comment vous pouvez ajouter des suppressions à la table, je ne suis pas sûr de réorganiser. Dans le Générateur d'interface, ajoutez NavigationController à votre fenêtre, puis ajoutez un TableViewController à l'intérieur et définissez sa classe dans la fenêtre des propriétés sur MyTableViewController
.
Je pense que je l'ai compris dans les tutoriels, il y a beaucoup de démos. Si vous ne pouvez pas trouver un exemple, vous êtes après il vaut la peine de parcourir Miguel De Icaza's Github samples.
poste de Alex York pourrait aussi aider, Deleting cells from a UITableView
[MonoTouch.Foundation.Register("MyTableViewController")]
public class MyTableViewController : UITableViewController
{
public List<string> Items { get;set; }
private UIBarButtonItem _buttonEdit;
private UIBarButtonItem _buttonDone;
public MyTableViewController(IntPtr ptr) : base(ptr)
{
_buttonEdit = new UIBarButtonItem(UIBarButtonSystemItem.Edit);
_buttonDone = new UIBarButtonItem(UIBarButtonSystemItem.Done);
_buttonEdit.Clicked += Handle_buttonEditClicked;
_buttonDone.Clicked += Handle_buttonDoneClicked;
NavigationItem.RightBarButtonItem = _buttonEdit;
}
void Handle_buttonDoneClicked (object sender, EventArgs e)
{
Editing = false;
NavigationItem.RightBarButtonItem = _buttonEdit;
}
void Handle_buttonEditClicked (object sender, EventArgs e)
{
Editing = true;
NavigationItem.RightBarButtonItem = _buttonDone;
}
private void BindData()
{
Title = "Testing tables";
Items = new List<string>() { "hello","world","big","bad","world"};
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
BindData();
TableView.Delegate = new MyTableViewDelegate(this);
TableView.DataSource = new MyTableDataSource(this);
}
public class MyTableDataSource : UITableViewDataSource
{
private MyTableViewController _tableViewController;
public MyTableDataSource(MyTableViewController controller)
{
_tableViewController = controller;
}
public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
string cellid = "cellid";
UITableViewCell cell = tableView.DequeueReusableCell(cellid);
if (cell == null)
{
cell = new UITableViewCell(UITableViewCellStyle.Default, cellid);
cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;
}
cell.TextLabel.Text = _tableViewController.Items[indexPath.Row];
return cell;
}
public override void CommitEditingStyle (UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
{
if (editingStyle == UITableViewCellEditingStyle.Delete)
{
_tableViewController.Items.RemoveAt(indexPath.Row);
tableView.DeleteRows(new [] { indexPath }, UITableViewRowAnimation.Fade);
}
}
public override int RowsInSection (UITableView tableview, int section)
{
return _tableViewController.Items.Count;
}
public override string TitleForHeader (UITableView tableView, int section)
{
return "title";
}
}
public class MyTableViewDelegate : UITableViewDelegate
{
private DetailsViewController _detailsViewController;
private MyTableViewController _tableViewController;
public MyTableViewDelegate(MyTableViewController controller)
{
_tableViewController = controller;
}
public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
if (_detailsViewController == null)
_detailsViewController = new DetailsViewController();
_detailsViewController.CurrentItem = _tableViewController.Items[indexPath.Row];
_tableViewController.NavigationController.PushViewController(_detailsViewController,true);
}
}
}