微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 C# 和 Xamarin 从 Visual Studio 中的 UITableViewController 调用 Instantiate UIViewController

如何解决使用 C# 和 Xamarin 从 Visual Studio 中的 UITableViewController 调用 Instantiate UIViewController

所以使用 Visual Studio、C# 和 Xamarin,我有这个 我有一个 UITableViewController,它列出了一系列记录,当用户点击其中一个时,我希望他们看到一个 UIViewController 页面,其中显示了完整的记录详细信息。

当记录选择时,在流程中正确调用函数,完整代码如下。

但是我看到了 2 个错误

PartsViewController PartsView= this.storyboard.InstantiateViewController("PartsViewController") as PartsViewController;

为情节提要显示错误

enter image description here

this.PresentViewController(PartsView,true,null);

为 PresentViewController

enter image description here

显示错误

这是我的第一个 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);
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。