Iphone UIViewController内的UIAbbarController=ViewDidDisplay:未调用

Iphone UIViewController内的UIAbbarController=ViewDidDisplay:未调用,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我从一个登录屏幕开始。然后在用户登录后,我加载一个带有UITabBArController的Viewcontroller。问题是ViewDidDisplay:不会为tabBarController中的任何单个ViewController调用 我觉得这不是最好的编程实践,那么有没有人知道如何改进我的代码结构或如何解决我的问题?为什么不制作一个基于TabBarController的应用程序,然后在应用程序启动时立即调用一个模式屏幕(用于登录)?登录完成后,只要关闭它,TabBarController

我从一个登录屏幕开始。然后在用户登录后,我加载一个带有UITabBArController的Viewcontroller。问题是ViewDidDisplay:不会为tabBarController中的任何单个ViewController调用


我觉得这不是最好的编程实践,那么有没有人知道如何改进我的代码结构或如何解决我的问题?

为什么不制作一个基于TabBarController的应用程序,然后在应用程序启动时立即调用一个模式屏幕(用于登录)?登录完成后,只要关闭它,TabBarController就可以成为关键窗口。

您可以尝试手动调用ViewDid出现在子视图控制器上:当在rootviewcontroller上调用它时,也可以手动调用子视图控制器。

我想您的问题可能是由于不正确使用UIViewController和UIAbbarController造成的

UITabBarController作为多个视图控制器的容器存在。它本身可能不应该被遏制。它被设计为位于视图控制器层次结构的顶部。因此,第一步可能是重新安排您的应用程序,以便UITabBarController不再位于任何其他项下,并查看这是否能解决您的问题


在那之后,slev显示登录视图的方法听起来是正确的。

我遇到了一个问题,因为我也在子类化UITabBarControler,在那里我在没有调用[super-viewdide:…]的情况下覆盖了viewdide


调用此函数后,ViewDidDisplay在子视图控制器内也被调用。

这似乎很好,您可以发布控制选项卡栏的viewController中使用的代码吗?您如何在视图控制器“内部”添加选项卡栏控制器?有没有可能帮到我@莱格拉斯。是的,伙计,当然。我之前看过了,认为对方已经有了正确的答案,但不知道它会给你一个例外错误,我基本上有两个PickerView。1个DatePickerView和另一个包含3个组件的PickerView。单击文本字段将显示它们。为了让他们辞职,我使用
[textField resignFirstResponder]
。这适用于DatePickerView,而不是iOS5中的另一个pickerview(引发错误)。应该有API支持自定义ui视图控制器,以便它可以充当UITabBarController之类的容器。很抱歉,这是不正确的。UITabBarController可以嵌套。如果重写了[super viewDidSomething]自己的方法,请确保调用[super ViewWillDisplay]。对我来说,这也是一个问题——我想最好的做法是始终将[super viewDidSomething]保留在方法的第一行,然后在下面添加代码?因此,忽略基本调用可能会搞乱调用层次结构中的某些内容?-有人愿意对此发表评论吗?