self.window.rootViewController = self.tabBarController;
[self.window addSubview:self.tabBarController.view];
它们在以下上下文中使用:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Add the tab bar controller's current view as a subview of the window
// self.window.rootViewController = self.tabBarController;
[self.window addSubview:self.tabBarController.view];
IntroViewController *introViewController = [[IntroViewController alloc] initWithNibName:@"IntroViewController" bundle:nil];
//Lets place introViewController in navController
UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:introViewController];
//Now lets display it
[self.tabBarController presentModalViewController:navController animated:YES];
[navController release];
[introViewController release];
[self.window makeKeyAndVisible];
return YES;
}
最佳答案
从iOS Reference:
rootViewController
根视图控制器提供窗口的内容视图。
将视图控制器分配给该属性(以编程方式
或使用Interface Builder)将视图控制器的视图安装为
窗口的内容视图。如果窗口已有视图
层次结构,先删除旧视图,再删除新视图
已安装。
addSubview
此方法保留视图并将其下一个响应者设置为接收者,
这是它的新超级视图。
视图只能有一个超级视图。如果视图已经具有超级视图,并且
该视图不是接收器,此方法将删除先前的视图
在使接收者成为新的超级视图之前。
因此,可以说主要区别在于,设置rootViewController会破坏UIWindow
中包含的所有先前视图,并使用addSubView:仅在顶部添加UIView
。