为啥当我使用 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?
当我对 args() 使用切入点时,为啥 tomcat 会抛出 NullPointErexception?