当视图被弹回时,是否有iOS覆盖方法?

3

我有一个MasterDetail应用程序,并有一个NavButton用于添加新项目。我能够成功地将视图弹出,但是我需要重新加载表格以使其完整。那么我的MasterViewController如何知道它何时被弹出,以便重新加载?

以下是弹出代码:

NavigationController.PopViewController(true);

它的功能符合预期,我只需要让MasterViewController重新加载表格,我为此编写了一个方法:

public void ReloadTable()
{
    TableView.ReloadData ();
}
2个回答

2

试试这个:

public partial class MasterViewController : UIViewController
{
    public void ReloadTable()
    {
        TableView.ReloadData ();
    }
}



public partial class DetailViewController : UIViewController
{
    public override void ViewWillDisappear (bool animated)
    {
        var masterViewController = NavigationController.ViewControllers.OfType<MasterViewController> ().FirstOrDefault();
        if (masterViewController != null) {
            masterViewController.ReloadTable ();
        }

        base.ViewWillDisappear (animated);
    }
}

为了使用OfType方法,你需要添加using System.Linq;


根据我的调试器,似乎不存在 .OfType<>();。 - hightekjonathan
你需要在using语句中添加using System.Linq;。此外,我更新了代码,在OfType方法返回集合时在末尾包含FirstOrDefault()。 - pnavk
实施了该操作后,仍然无法重新加载表格数据。 - hightekjonathan
我现在明白了。我一直尝试重新加载数据,但我忘记添加要重新加载的新数据。 - hightekjonathan

1

Objective-C

可以通过检查navigationController是否包含viewcontroller来实现,如下所示:

注意 viewControllerA 推送了 viewControllerB

现在在viewControllerB中使用viewWillDisappear方法

- (void)viewWillDisappear:(BOOL)animated
{
  if (![[self.navigationController viewControllers] containsObject: self]) //any other hierarchy compare if it contains self or not
  { 
    // the view has been removed from the navigation stack or hierarchy, back is probably the cause
    // this will be slow with a large stack however.

    viewControllerA *objViewControllerA = [[self.navigationController viewControllers] lastObject];
    //NSLog(@"%@",objViewControllerA);
    if (objViewControllerA)
    {
        [objViewControllerA viewPoppedBack];
    }
  }
}

现在在viewControllerA中添加一个方法。保留html标签,不进行解释。
 -(void)viewPoppedBack
 {
    //reload tableview here
    [yourTableViewHere reloadData];
 }

你知道如何使用Xamarin在C#中实现这个吗? - hightekjonathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接