当我使用presentModelViewController时,为什么viewWillAppear在我的UITabBArController中没有被调用?

发布于 2024-12-08 15:21:59 字数 856 浏览 0 评论 0原文

我的应用程序是一个基于视图的应用程序。我做了一个登录视图,如果用户输入正确的用户名和密码,我会进入主菜单,这是一个 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?提前致谢

My app is a view based application. I made a login view and if user enters right username and password i go to main menu which is a UITabViewController like this:

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

mainMenu has 4 tabs with these names: Menu, History, Settings, Music.

when i click on tabs then viewWillAppear of view attached with that tab should be called. But its not calling viewWillAppear of any tab. In Menu tab i am generating a tableView when a button is clicked like this:

 [self presentModalViewController:sel animated:YES];

and when any row of the table is tapped i call this:

 [self dismissModalViewControllerAnimated:YES];

so that table view goes away. Strange thing is after this is done, viewWillAppear is called for every view attached to tab bar. Then when i switch between tab bar views then viewWillAppear for every view is called. Why is that so and is there any way that viewWillAppear of every view attached with TabBarController will be called without calling new tableView? Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿看小鸭子会跑 2024-12-15 15:21:59

你没有回答我的问题,但是好吧。试试这个,将你的菜单选项卡放在第二个选项卡上。查看现在是否调用了 viewWillAppear 。

You did not answered my question, but ok. Try this, put your menu tab as the second one. See if the viewWillAppear is called now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文