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

问题描述:

我的应用程序是一个基于视图的应用程序。我做了一个登录视图,如果用户输入正确的用户名和密码,我去主菜单这是一个UITabViewController这样的:当我使用presentModelViewController时,为什么viewWillAppear没有在我的UITabBArController中调用?

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?在此先感谢

+0

为什么你会以模态方式呈现TabViewController? – Peres

+0

我必须做一些设置。该tableview的每一行设置的东西。但是当view视图关闭时,将会调用TabBarController附带的每个视图的viewWillAppear。为什么在tableView被呈现和解散之前他们没有被调用。 – Piscean

+0

只是忘了那个tableView。我写了这个,因为在tableView出现和解除之后,每个视图的viewWillAppear被调用。 – Piscean

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

+0

我写了关于tableView只是为了告诉我,如果我做了这样的观点,然后viewWillAppear被称为不是每个视图。该tableView是由mainMenu视图中的按钮创建的。我有4个选项卡。当我在选项卡之间切换时,他们都不会调用他们的viewWillAppear。只是忘了tableView。 – Piscean

+0

它不工作。把菜单标签作为第二个给出了相同的结果 – Piscean

+0

因此,让我得到这一点,你有4个选项卡和viewWillAppear没有被调用。但是如果你在第一个标签中放置一张桌子,他们会被叫到? – Peres