2012-01-20 39 views
3

UINavigationController中按下“后退”按钮时,我需要调用viewDidLoad方法。因此,举例来说,如果我有像这样一个流程:如何在UINavigationController中按下后退按钮时调用viewDidLoad方法? (iPhone/iPad)

查看A - >视图B - >视图C

我需要它,这样,如果我在View C和我压回,应该调用View BviewDidLoad方法。同样,如果我在View B上,并按下后退按钮View AviewDidLoad方法应该被调用。

请有人可以建议如何做到这一点?

回答

9

viewDidLoad方法当视图控制器完成加载和设置视图控制器,例如加载NIB文件被调用。为了您的需要,您应该将相关代码移动到viewWillAppear,每当相应的视图控制器变为可见时就会调用该代码。所以对于一个转换A -> B -> C (backto)-> BviewWillAppear方法B的视图控制器将被调用两次。

+0

'viewDidLoad'也会,如果你有自己的自定义'loadVOiew'方法,即你不使用发钞银行叫。如果你希望“after”事件更像'viewDidLoad',你可以使用'viewDidAppear'。 – smparkes

0

从你的描述,这听起来像你将使用viewWillAppear中或viewDidAppear方法,而不是得到更好的服务。 viewDidLoad被设计为只能被调用一次,除非由于内存警告而丢弃视图。

相关问题