2013-03-09 64 views
0

在代码的viewDidLoad部分中确定[self viewDidAppear:YES];是否确保viewDidAppear代码段将运行?[self viewDidAppear:YES];

根据我们用户的一小部分反馈,无论出于什么原因,我在主菜单视图的viewDidAppear部分中编写的代码都没有运行 - 但它对大部分用户和我所有的测试。我希望通过添加[self viewDidAppear:YES];这将解决这个问题,因为某些原因,这些设备没有叫viewDidAppear ...

你们认为什么?

回答

4

如果视图控制器嵌套在另一个视图控制器中并在较早的操作系统上运行,ViewDidAppear可能不会被调用。在iOS 5之前,委托命令并不总是被转发给子控制器。

+0

我会问这些人是否可以告诉我他们正在运行哪个操作系统......并且希望每个人都能更新他们的设备! – RanLearns 2013-03-09 05:36:45

+0

得到了一个人的电子邮件回复,这个问题确实在他们的iPad上运行4.3.3。不知道有多少用户没有升级他们的操作系统...... – RanLearns 2013-03-11 16:32:53

+0

统计上并不多,但总是有几个。 – Dancreek 2013-03-11 19:40:02

5

我个人认为这是一个可怕的想法。我认为你最好找出为什么viewDidAppear没有执行该用户的子集。你可能只是通过“修复”看起来是错误的东西来治疗更大问题的症状。

+0

任何想法为什么viewDidAppear不会执行? – RanLearns 2013-03-09 05:06:27

+0

我添加视图:UIViewController * nextController = [[MainMenuController alloc] initWithNibName:@“MainMenuController”bundle:nil]; [nextController performSelector:@selector(setDelegate :) withObject:self]; [self.view addSubview:nextController.view]; – RanLearns 2013-03-09 05:06:43

1

你不应该直接调用委托方法。

+0

也许你可以扩大这个答案并解释为什么? – Kev 2013-03-09 11:20:43