为啥当我使用 presentModelViewController 时未在我的 UITabBArController 中调用 viewWillAppear?

Posted

技术标签:

【中文标题】为啥当我使用 presentModelViewController 时未在我的 UITabBArController 中调用 viewWillAppear?【英文标题】:Why viewWillAppear is not called in my UITabBArController when i use presentModelViewController?为什么当我使用 presentModelViewController 时未在我的 UITabBArController 中调用 viewWillAppear? 【发布时间】:2011-10-06 14:04:39 【问题描述】:

我的应用是基于视图的应用。我做了一个登录视图,如果用户输入正确的用户名和密码,我会进入主菜单,这是一个像这样的 UITabViewController:

 MainMenuController *mainMenu = [[[MainMenuController alloc] init] autorelease];
[mainMenu setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:mainMenu animated:YES];

mainMenu 有 4 个标签,名称分别为:菜单、历史记录、设置、音乐。

当我单击选项卡时,应调用附加该选项卡的视图 viewWillAppear。但它不调用任何选项卡的 viewWillAppear 。在菜单选项卡中,当单击这样的按钮时,我正在生成一个 tableView:

 [self presentModalViewController:sel animated:YES];

当点击表格的任何一行时,我称之为:

 [self dismissModalViewControllerAnimated:YES];

这样表格视图就消失了。奇怪的是,完成此操作后,会为附加到选项卡栏的每个视图调用 viewWillAppear。然后,当我在标签栏视图之间切换时,每个视图的 viewWillAppear 都会被调用。为什么会这样?是否有任何方法可以调用附加 TabBarController 的每个视图的 viewWillAppear 而不调用新的 tableView?提前致谢

【问题讨论】:

你为什么要以模态方式展示你的 TabViewController? 我必须做一些设置。该表视图的每一行都设置了一些东西。但问题是 viewWillAppear 为每个附加了 TabBarController 的视图在该表视图被关闭时被调用。为什么在 tableView 呈现和关闭之前没有调用它们。 忘掉那个tableView吧。我写这个是因为在 tableView 出现和关闭之后,每个视图的 viewWillAppear 都会被调用。 【参考方案1】:

你没有回答我的问题,但是好的。试试这个,把你的菜单标签作为第二个。看看现在是否调用了viewWillAppear

【讨论】:

我写了关于 tableView 的文章只是为了告诉我,如果我制作这样的视图,那么不会为每个视图调用 viewWillAppear。该 tableView 是由 mainMenu 视图中的按钮创建的。我有 4 个选项卡。当我在选项卡之间切换时,没有一个会调用它们的 viewWillAppear。忘记tableView。 它不工作。将菜单选项卡作为第二个选项卡给出相同的结果 所以让我直截了当地说,你有 4 个选项卡,并且没有调用 viewWillAppear。但是,如果您在第一个选项卡中放置一个表格,它们会被调用吗? 是的。如果该表视图使用 [presentModalViewController:sel animated:YES] 出现并使用 [dismissModalViewControllerAnimated:YES] 关闭 想要小费吗?不要使用 presentModalViewController 呈现 UITabBarController。

以上是关于为啥当我使用 presentModelViewController 时未在我的 UITabBArController 中调用 viewWillAppear?的主要内容,如果未能解决你的问题,请参考以下文章

当我使用 HTTP 协议尝试请求时,为啥会收到错误的请求响应?

为啥当我使用 presentModelViewController 时未在我的 UITabBArController 中调用 viewWillAppear?

为啥当我使用 tkinter 配置选项时这个标签没有改变

当我对 args() 使用切入点时,为啥 tomcat 会抛出 NullPointErexception?

当我使用 set 作为捕获时,为啥 Twig 不能使用变量作为数组的索引?

为啥当我使用 QImage::scaled() 时我的内存消耗很大?