问题描述
所以使用 Visual Studio、C# 和 Xamarin,我有这个 我有一个 UITableViewController,它列出了一系列记录,当用户点击其中一个时,我希望他们看到一个 UIViewController 页面,其中显示了完整的记录详细信息。
但是我看到了 2 个错误:
PartsViewController PartsView= this.storyboard.InstantiateViewController("PartsViewController") as PartsViewController;
this.PresentViewController(PartsView,true,null);
这是我的第一个 IOS 应用程序,所以任何人都可以向我展示我的方法错误。
代码:
public partial class PartsListController : UITableViewController
{
public List<String> Partss { get; set; }
public List<String> Ndx { get; set; }
static readonly Nsstring PartsListCellId = new Nsstring("PartsListCell");
public PartsListController (IntPtr handle) : base (handle)
{
TableView.RegisterClassForCellReuse(typeof(UITableViewCell),PartsListCellId);
TableView.source = new PartsDataSource(this);
Partss = new List<string>();
Ndx = new List<String>();
}
class PartsDataSource : UITableViewSource
{
PartsListController controller;
public PartsDataSource(PartsListController controller)
{
this.controller = controller;
}
public override void RowSelected(UITableView tableView,NSIndexPath indexPath)
{
PartsViewController PartsView= this.storyboard.InstantiateViewController("PartsViewController") as PartsViewController;
string selection = controller.Partss[indexPath.Row];
string pos = controller.Ndx[indexPath.Row];
this.PresentViewController(PartsView,null);
}
public override nint RowsInSection(UITableView tableView,nint section)
{
return controller.Partss.Count;
}
public override UITableViewCell GetCell(UITableView tableView,NSIndexPath indexPath)
{
var cell = tableView.DequeueReusableCell(PartsListController.PartsListCellId);
var row = indexPath.Row;
cell.TextLabel.Text = controller.Partss[row];
return cell;
}
}
}
}
解决方法
已排序 来了
public override void RowSelected(UITableView tableView,NSIndexPath indexPath)
{
PartsViewController PartsView= controller.storyboard.InstantiateViewController("PartsViewController") as PartsViewController;
string selection = controller.Partss[indexPath.Row];
string pos = controller.Ndx[indexPath.Row];
controller.NavigationController.PushViewController(RecipeView,true);
}