gpt4 book ai didi

ios - 我可以在popViewcontroller 之后调用delegate 方法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:04:21 24 4
gpt4 key购买 nike

1) 我有两个 Controller ,fistViewController,secondViewController。

2) 第一个 Controller 实现委托(delegate)说“xyzDelegate”。

@interface FirstViewController : UIViewController <xyzDelegate>

3) First View Controller 中的delegate 方法刷新UIViewTable。

4) 第一个 Controller :推送第二个 View Controller 。

 SecondviewController *svc = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
svc.delegate = self;

[self.navigationController pushViewController:svc animated:YES];

4) 在第二个 View Controller 中:

 id<xyzDelegate> strongDelegate = self.delegate; 

[self.navigationController popViewControllerAnimated:YES];
NSLog (@"After popViewControler");

[strongDelegate dateSelected:dateChoosen]; // Invoking Delegate Method.

问题:

1) 在 Popping View Controller 之后调用委托(delegate)方法是普遍做法吗? 当我刷新 UITable 时,一旦在 FirstView Controller 中调用了委托(delegate)方法。

最佳答案

通常, View Controller 是一个独立的屏幕单元。特别是如果它由导航 Controller 切换。您需要重新配置 View 以通过覆盖 viewWillAppear:viewDidAppear: 方法之一绑定(bind)它们的数据。

通常 viewDidAppear: 是首选。因为在很多情况下,切换 View 需要重新加载底层数据,而这通常会导致异步 I/O。在这种情况下,此异步 I/O 可能会干扰同时执行 View 切换动画。

无论如何,如果您的 View 设置操作是轻量级的,那么使用 viewWillAppear: 会更好,因为它会让您的用户等待更少。

在这种情况下,IMO,您最好的选择似乎只是标记以刷新目标 View Controller 上的数据,并在 View Controller 的 viewDidAppear: 方法中处理刷新。

关于ios - 我可以在popViewcontroller 之后调用delegate 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24754834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com