如何使用objective c在iphone中添加UITabBar
如何为iphone应用程序以编程方式添加UITabBar。需要一些建议和示例代码如何使用objective c在iphone中添加UITabBar,iphone,objective-c,uitabbar,Iphone,Objective C,Uitabbar,如何为iphone应用程序以编程方式添加UITabBar。需要一些建议和示例代码 - (void) setUpTabBar { FirstViewController *firstViewController = [[FirstViewController alloc]init]; firstViewController.title = @"First View"; firstViewController.tabBarItem = [[UITabBarItem alloc
- (void) setUpTabBar {
FirstViewController *firstViewController = [[FirstViewController alloc]init];
firstViewController.title = @"First View";
firstViewController.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemSearch tag:0];
UINavigationController *firstNavController = [[UINavigationController alloc]initWithRootViewController:firstViewController];
SecondViewController *secondViewController = [[SecondViewController alloc]init];
secondViewController.title = @"Second View";
secondViewController.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:1];
UINavigationController *secondNavController = [[UINavigationController alloc]initWithRootViewController:secondViewController];
ThirdViewController *thirdViewController = [[ThirdViewController alloc]init];
thirdViewController.title = @"Third View";
thirdViewController.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemRecents tag:2];
UINavigationController *thirdNavController = [[UINavigationController alloc]initWithRootViewController:thirdViewController];
ForthViewController *forthViewController = [[ForthViewController alloc]init];
forthViewController.title = @"Forth View";
forthViewController.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemHistory tag:2];
UINavigationController *forthNavController = [[UINavigationController alloc]initWithRootViewController:forthViewController];
tabBarController = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
tabBarController.viewControllers = [[NSArray alloc] initWithObjects:firstNavController, secondNavController, thirdNavController, forthNavController, nil];
tabBarController.delegate = self;
[self sizeViewToAvailableWindow:[tabBarController view]];
[firstNavController release];
[firstViewController release];
[secondNavController release];
[secondViewController release];
[thirdNavController release];
[thirdViewController release];
[forthNavController release];
[forthViewController release];
}
以下是以编程方式制作TabBarController的代码。
希望这能对你有所帮助。以下是你能做的
SubClassViewController1* vc1 = [[SubClassViewController1 alloc] init];
UINavigationController* nav1 = [[UINavigationController alloc] initWithRootViewController:vc1];
nav1.navigationBar.hidden = YES;
[vc1 release]; vc1 = nil;
SubClassViewController2* vc2 = [[SubClassViewController2 alloc] init];
vc2.title = @"List";
UINavigationController* nav2 = [[UINavigationController alloc] initWithRootViewController:vc2];
nav2.navigationBar.hidden = YES;
[vc2 release]; vc2 = nil;
SubClassViewController3* vc3 = [[SubClassViewController3 alloc] init];
vc3.title = @"Scan";
UINavigationController* nav3 = [[UINavigationController alloc] initWithRootViewController:vc3];
nav3.navigationBar.hidden = YES;
[vc3 release]; vc3 = nil;
SubClassViewController4* vc4 = [[SubClassViewController4 alloc] init];
vc4.title = @"Setting";
UINavigationController* nav4 = [[UINavigationController alloc] initWithRootViewController:vc4];
nav4.navigationBar.hidden = YES;
[vc4 release]; vc4 = nil;
UITabBarController* tabBar = [[UITabBarController alloc] init];
[tabBar setViewControllers:[NSArray arrayWithObjects:nav1,nav2,nav3,nav4,nil]];
[self.navigationController pushViewController:tabBar animated:YES];
[nav1 release]; nav1 = nil;
[nav2 release]; nav2 = nil;
[nav3 release]; nav3 = nil;
[nav4 release]; nav4 = nil;
[tabBar release]; tabBar = nil;
这将创建一个包含四个选项卡的选项卡栏,每个选项卡都有自己的viewcontroller和navigation controller,即每个选项卡维护自己的堆栈以推送和弹出视图控制器。
我希望这对你有所帮助。你可以做如下事情:
UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 430, 320, 50)];
[self.view addSubview:tabBar];
要向其中添加一些项目,您可以编写:
NSMutableArray *tabBarItems = [[NSMutableArray alloc] init];
UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Title" image:[UIImage imageNamed:@"Image.png"] tag:0];
UITabBarItem *tabBarItem1 = [[UITabBarItem alloc] initWithTitle:@"Title1" image:[UIImage imageNamed:@"Image1.png"] tag:1];
[tabBarItems addObject:tabBarItem];
[tabBarItems addObject:tabBarItem1];
tabBar.items = tabBarItems;
tabBar.selectedItem = [tabBarItems objectAtIndex:0];
这里有两个方面 第一个方面(UITabBarController): 在这里,您可以将多个类(即ViewController)添加到UITabBarController,如前面的答案所示 第二个方面(uitabar): 在这里,您可以在任何视图控制器中添加选项卡栏…对于此选项卡栏,您可以添加多个UITabBar项..并且可以获得单个选项卡栏项操作 参见以下代码了解uitabar
UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
myTabBar.delegate=self; //here you need import the protocol <UITabBarDelegate>
[self.view addSubview:myTabBar];
NSMutableArray *tabBarItems = [[NSMutableArray alloc] init];
UITabBarItem *tabBarItem1 = [[UITabBarItem alloc] initWithTitle:@"Item1" image:[UIImage imageNamed:@"Item1image.png"] tag:0];
UITabBarItem *tabBarItem2 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:1 ];
UITabBarItem *tabBarItem3 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemHistory tag:2 ];
[tabBarItems addObject:tabBarItem1];
[tabBarItems addObject:tabBarItem2];
[tabBarItems addObject:tabBarItem3];
myTabBar.items = tabBarItems;
myTabBar.selectedItem = [tabBarItems objectAtIndex:0];
tabBar.items = [tabBarItem1, tabBarItem2, tabBarItem3, tabBarItem4]
tabBar.selectedItem = tabBarItem1
--------->添加uitabar
UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
myTabBar.delegate=self; //here you need import the protocol <UITabBarDelegate>
[self.view addSubview:myTabBar];
NSMutableArray *tabBarItems = [[NSMutableArray alloc] init];
UITabBarItem *tabBarItem1 = [[UITabBarItem alloc] initWithTitle:@"Item1" image:[UIImage imageNamed:@"Item1image.png"] tag:0];
UITabBarItem *tabBarItem2 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:1 ];
UITabBarItem *tabBarItem3 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemHistory tag:2 ];
[tabBarItems addObject:tabBarItem1];
[tabBarItems addObject:tabBarItem2];
[tabBarItems addObject:tabBarItem3];
myTabBar.items = tabBarItems;
myTabBar.selectedItem = [tabBarItems objectAtIndex:0];
tabBar.items = [tabBarItem1, tabBarItem2, tabBarItem3, tabBarItem4]
tabBar.selectedItem = tabBarItem1
--------->在委托方法中获取项目操作
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
NSInteger selectedTag = tabBar.selectedItem.tag;
NSLog(@"%ld",(long)selectedTag);
if (selectedTag == 0) {
//Do what ever you want here
} else if(selectedTag == 1) {
//Do what ever you want
} else { //if(selectedTag == 2)
//Do what ever you want here
}
}
更新:(Swift 2.0)
1.第一个方面(UITabBarController):
这将允许我们将
UIViewController
中的UIViewController
配置为tabbar
项以下是UITabBarController的基本方法:
------------->在appdelegate中将UITabBarController添加到窗口
let tabBarController = UITabBarController(nibName: nil, bundle: nil)
tabBarController.delegate = self // Need to import 'UITabBarControllerDelegate'
self.window!.rootViewController = tabBarController;
self.window?.makeKeyAndVisible();
------------->配置UIViewControllerlet firstViewController = UIViewController()
firstViewController.title = "FirstVC"
firstViewController.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Bookmarks, tag: 0)
let firstNavController: UINavigationController = UINavigationController(rootViewController: firstViewController)
let secondViewController = UIViewController()
secondViewController.title = "SecondVC"
secondViewController.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Contacts, tag: 1)
let secondNavController: UINavigationController = UINavigationController(rootViewController: secondViewController)
let thirdViewController = UIViewController()
thirdViewController.title = "ThirdVC"
thirdViewController.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Downloads, tag: 2)
let thirdNavController: UINavigationController = UINavigationController(rootViewController: thirdViewController)
let forthViewController = UIViewController()
forthViewController.title = "ForthVC"
forthViewController.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Favorites, tag: 3)
let forthNavController: UINavigationController = UINavigationController(rootViewController: forthViewController)
tabBarController.viewControllers = [firstNavController, secondNavController, thirdNavController, forthNavController]
------------->将UIViewController连接到UIAbbarControllerlet firstViewController = UIViewController()
firstViewController.title = "FirstVC"
firstViewController.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Bookmarks, tag: 0)
let firstNavController: UINavigationController = UINavigationController(rootViewController: firstViewController)
let secondViewController = UIViewController()
secondViewController.title = "SecondVC"
secondViewController.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Contacts, tag: 1)
let secondNavController: UINavigationController = UINavigationController(rootViewController: secondViewController)
let thirdViewController = UIViewController()
thirdViewController.title = "ThirdVC"
thirdViewController.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Downloads, tag: 2)
let thirdNavController: UINavigationController = UINavigationController(rootViewController: thirdViewController)
let forthViewController = UIViewController()
forthViewController.title = "ForthVC"
forthViewController.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Favorites, tag: 3)
let forthNavController: UINavigationController = UINavigationController(rootViewController: forthViewController)
tabBarController.viewControllers = [firstNavController, secondNavController, thirdNavController, forthNavController]
----------->在“UITabBarControllerDelegate”中接收事件
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
print("didSelectViewController: \(viewController.title) ?")
}
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
let selectedTag:Int = (tabBar.selectedItem?.tag)!
print(selectedTag)
switch selectedTag {
case 0:
print("tabBarItem1")
//Do what ever you want here
case 1:
print("tabBarItem2")
//Do what ever you want here
case 2:
print("tabBarItem3")
//Do what ever you want here
default:
print("tabBarItem4")
//Do what ever you want here
}
}
2.第二个方面(uitabar):
这将允许我们创建
tabbar
项。我们可以在委托方法中获取单个项目的事件以下是UITabBar的基本方法:
------------->向视图中添加UITabBar
let frame = CGRectMake(0, CGRectGetHeight(self.view.frame) - 49, CGRectGetWidth(self.view.frame), 49)
let tabBar: UITabBar = UITabBar(frame: frame)
tabBar.delegate = self // Need to import 'UITabBarDelegate'
self.view.addSubview(tabBar)
------------->准备TabbarItems
let tabBarItem1 = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Bookmarks, tag: 0)
let tabBarItem2 = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Contacts, tag: 1)
let tabBarItem3 = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Downloads, tag: 2)
let tabBarItem4 = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Favorites, tag: 3)
------------->向UITabBar添加UITABBARIEMS
UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
myTabBar.delegate=self; //here you need import the protocol <UITabBarDelegate>
[self.view addSubview:myTabBar];
NSMutableArray *tabBarItems = [[NSMutableArray alloc] init];
UITabBarItem *tabBarItem1 = [[UITabBarItem alloc] initWithTitle:@"Item1" image:[UIImage imageNamed:@"Item1image.png"] tag:0];
UITabBarItem *tabBarItem2 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:1 ];
UITabBarItem *tabBarItem3 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemHistory tag:2 ];
[tabBarItems addObject:tabBarItem1];
[tabBarItems addObject:tabBarItem2];
[tabBarItems addObject:tabBarItem3];
myTabBar.items = tabBarItems;
myTabBar.selectedItem = [tabBarItems objectAtIndex:0];
tabBar.items = [tabBarItem1, tabBarItem2, tabBarItem3, tabBarItem4]
tabBar.selectedItem = tabBarItem1
----------->在“UITabBarDelegate”中接收事件
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
print("didSelectViewController: \(viewController.title) ?")
}
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
let selectedTag:Int = (tabBar.selectedItem?.tag)!
print(selectedTag)
switch selectedTag {
case 0:
print("tabBarItem1")
//Do what ever you want here
case 1:
print("tabBarItem2")
//Do what ever you want here
case 2:
print("tabBarItem3")
//Do what ever you want here
default:
print("tabBarItem4")
//Do what ever you want here
}
}
是的,但我还没找到解决办法。麦克斯,拜托。我买了Objective C的书,并且已经深入研究了一段时间,但我仍然有这些方面的问题。他在问如何创建一个UtiAbbar,而不是UtiAbbar控制器。。。令人惊讶的是,苹果的文档并没有告诉你如何创建一个简单的UtiAbar而不使用控制器?回答得好,我的朋友@Ashok KumarS@YuvarajM. 确保您设置了委托。@谢谢Ashok,早上好,我会解决它的。