【问题标题】:Xamarin IOS - Tableview not refreshing on PresentViewController when it is a TabViewControllerXamarin IOS - 当 Tableview 是 TabViewController 时,PresentViewController 上的 Tableview 不刷新
【发布时间】:2016-11-24 07:59:50
【问题描述】:

我有一个 TableView,它位于 TabViewController 的后代控制器中。 TableView 有来自 API 的项目。还有一个创建新的 TableItem 表单/控制器,一旦它被提交,我需要它向 ViewController 展示表格视图,以及来自 API 的更新的项目列表。

var storyBoard = this.Storyboard;
var viewController = (TabBarController)storyBoard.InstantiateViewController("TabBarController");

var tabs = viewController.ChildViewControllers;
viewController.SelectedViewController = tabs[1];

PresentViewController(viewController, true, null);

这在呈现正确视图方面按预期工作。但是直到我像这样强制重新加载:

async Task RefreshAsync()
{
    if (_useRefreshControl)
        _refreshControl.BeginRefreshing();

    if (_useRefreshControl)
        _refreshControl.EndRefreshing();

    BookingsTableView.ReloadData();
}

当页面加载时,视图只是在 TableView 中显示相同的项目,它应该查询 API 并加载列表:

_bookings = await   _apiService.GetBookingsForCustomer(model.CustomerEmail); 
_dataSource = new BookingTableSource(_bookings, this);

BookingsTableView.Source = _dataSource;
BookingsTableView.ReloadData();

还应注意这个应用程序只是一个简单的概念证明。但是我怎样才能让它实例化我的 TableViewController 同时仍然呈现 TabBarController?

谢谢,

丹尼

【问题讨论】:

  • 如果您分享完整的示例解决方案,它可能能够了解更多您正在尝试做的事情
  • 嗨,尤里,感谢您的发帖。我设法解决了这个问题,我将在下面发布答案。

标签: xamarin xamarin.ios


【解决方案1】:

解决了这个问题,只需使用预订表单关闭 ViewController 并使用预订 TableView 在 ViewController 中的 ViewDidAppear 覆盖中调用我的刷新方法:

public override void ViewDidAppear(bool animated)
{
    RefreshData();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2012-09-08
    • 1970-01-01
    • 2017-09-22
    • 2011-01-09
    相关资源
    最近更新 更多