我正在学习Iphone UI选项卡控制器教程,我基本上模仿了底部link text的代码
// Create a temporary window object to assign to the window property
UIWindow *tempWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen]
bounds]];
// Make the window background red so that you can see that the window has been added
tempWindow.backgroundColor = [UIColor grayColor];
self.window = tempWindow;
[tempWindow release];
// add the tab bar controller
UITabBarController *tabBarController;
tabBarController = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
PhoneContactsView *phoneContactsView = [[[PhoneContactsView alloc] init] autorelease];
OtherContactsView *otherContactsView = [[[OtherContactsView alloc] init] autorelease];
//Add all the view to the tabBarView
tabBarController.viewControllers = [NSArray arrayWithObjects:otherContactsView,phoneContactsView, nil];
//Add all the button's to the bar
UITabBarItem *otherContactsTabBarItem =
[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemTopRated tag:1];
otherContactsBarItem.title = @"My Contacts";
otherContactsView.tabBarItem = otherContactsBarItem;
[otherContactsBarItem release];
UITabBarItem *phoneContactsBarItem =
[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:1];
phoneContactsView.tabBarItem = phoneContactsBarItem;
[phoneContactsBarItem release];
tabBarController.selectedViewController
= [tabBarController.viewControllers objectAtIndex:0];
[window addSubview:tabBarController.view];
[tabBarController release];
[window makeKeyAndVisible];OtherContacts和PhoneContacts只是默认的空视图,我只是更改了它们的背景以确保它们是加载的。当我运行此命令时,加载了第一个视图,但我无法单击选项卡栏在视图之间切换我是否遗漏了什么?
发布于 2009-07-08 05:28:06
找到错误:
[window addSubview:tabBarController.view];
[tabBarController release]; <------------- I am releasing the tabBarController while still in use
[window makeKeyAndVisible];这就是标签栏控制器没有响应的原因。-daniel
发布于 2009-07-08 03:38:53
如果OtherContacts和PhoneContacts是"UIView“类而不是UIViewController类,这就解释了问题--选项卡栏控制器需要UIViewController引用。
https://stackoverflow.com/questions/1096025
复制相似问题