我有我的iPhone應用程序的結構如下父視圖
的AppDelegate /的UITabBarController/5 UINavigationControllers(我的標籤)/UIViewController中(如RootViewController的每一個的UINavigationController)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
HomeViewController *homeViewController = [[HomeViewController alloc] init];
GoalsTableViewController *goalsTableViewController = [[GoalsTableViewController alloc] init];
HistoryViewController *historyViewController = [[HistoryViewController alloc] init];
SettingsViewController *settingsViewController = [[SettingsViewController alloc] init];
InfoViewController *infoViewController = [[InfoViewController alloc] init];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.delegate = self;
self.navBarActivity = [[UINavigationController alloc] initWithRootViewController:homeViewController];
self.navBarSettings = [[UINavigationController alloc] initWithRootViewController:settingsViewController];
self.navBarHistory = [[UINavigationController alloc] initWithRootViewController:historyViewController];
self.navBarGoals = [[UINavigationController alloc] initWithRootViewController:goalsTableViewController];
self.navBarAbout = [[UINavigationController alloc] initWithRootViewController:infoViewController];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:self.navBarActivity, self.navBarGoals, self.navBarHistory,self.navBarSettings, self.navBarAbout, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
在一些UIViewControllers我以發送電子郵件實現的MFMailComposeViewController。
我嘗試一個奇怪的問題(在模擬器和實際設備的iOS 5.0和5.1轉載)...
使用iPhone模擬器(僅限iOS 5.0或5.1),如果我模仿而MFMailComposerViewController內存不足的警告模態在屏幕上打開,然後點擊取消,然後點擊刪除|保存草稿,當模式被解除時,父視圖看起來不可見(空白視圖)。
生命週期似乎工作正常,如果我遵循相同的步驟,但模擬低內存警告後,我從MFMailComposeViewController模式發送電子郵件,當模式被解僱,我的父視圖看起來不錯。
任何建議如何防止我的父視圖卸載內存警告?
EDIT1
我想通了,發生了什麼事,卸載和復出的觀點和viewDidLoad中內進入最後一個視圖(生命週期)後,使用TabBar沒有插入導航視圖。我檢查的TabBar的子視圖:
UIView *tabBarControllerWrapperView = [[[self.tabBarController.view.subviews objectAtIndex:0] subviews] objectAtIndex:0];
// tabBar UIViewControllerWrapperView has not views
if([tabBarControllerWrapperView.subviews count] == 0)
{
// add navigationbar view
[tabBarControllerWrapperView addSubview:self.navigationController.view];
}
有沒有更好的辦法來解決它,任何想法:
UITransitionView
==><UIViewControllerWrapperView>
==> empty
<UITabBar>
我在viewDidLoad中添加作爲子視圖重新整合的導航欄的看法?
感謝@ elio.d,但我們回顧了生命週期和工作正常,也是在其他模態像廣告條幅,但電子郵件作曲家是意想不到的,因爲進入viewdidload並重建所有他們的視圖對象,但沒有插入視圖。我們發現tabbar並沒有插入導航欄視圖,但是很奇怪。 –