在移动开发领域里面,一般TableBar放置在屏幕的最下方会有很多平级的按钮,用户可以击不同的按钮切换屏幕中显示的视图,TableBar可以使用系统自带的也可以自己 继承重写它的方法实现自定义TableBar,今天我们主要讨论系统自带的TableBar的简单使用。
如上图所示,系统自带的TableBar屏幕中最多只可以放置5个,如果超过5个系统会自动生成一个More按钮,会将超出的以一个列表的形式展现出来,贴出代码我们分析一下。
NSMutableArray * controllers : 存放TableBar中的每一个Item,最后将它整体显示在屏幕中。
NSArray *item :存放着须要在分页栏中显示的名称,之后使用for循环依次遍历 ,将其添加入显示视图。
TableViewController :控制TableBar点击后的显示视图。
最后把它添加到显示视图当中。。
TableViewAppDelegate.m
#import "TableViewAppDelegate.h"
#import "TableViewController.h"
@implementation TableViewAppDelegate
@synthesize window = _window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSMutableArray *controllers = [NSMutableArray array];
NSArray *item = [NSArray arrayWithObjects:@"雨松MOMO",@"若若娃",@"小可爱",@"哇咔咔",@"小老虎",@"学苹果",@"快乐乐",@"寿司卷", nil];
//数组数量
int count = [item count];
for (int i = 0; i < count; i++)
{
//创建TableViewController
TableViewController * tabViewController = [[TableViewController alloc]initController:[item objectAtIndex:i]];
//设置标题
[tabViewController setTitle:@"雨松MOMO的程序世界"];
//绑定tabViewController用来响应按钮点击事件
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:tabViewController];
//设置标题
nav.title = [item objectAtIndex:i];
//设置图片
nav.tabBarItem.image = [UIImage imageNamed:@"title.png"];
//设置风格为默认风格
nav.navigationBar.barStyle = UIBarStyleDefault;
//添加这个UINavigationController
[controllers addObject:nav];
//释放对象
[nav release];
}
//创建UITabBarController,将显示的内容添加进去
UITabBarController *bar = [[UITabBarController alloc] init];
bar.viewControllers = controllers;
bar.customizableViewControllers = controllers;
//添加到显示窗口中
[self.window addSubview:bar.view];
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
return YES;
}
@end
如下图所示,多余的Item会以列表的形式展示。
-(id) initController:(NSString *)str :用于初始化,将显示内容传入。创建TableBar的时候将名称作为参数传入这样每次切换的时候知道用户点击了那个按钮。这个例子用户切换点击按钮的时候将切换顶部的显示内容。
-(void)viewDidLoad: 这个方法很重要,用户没按点击按钮都会重新加载,因为上面设置了每个Item的Controller都是TableViewController,如果每 个页面显示的内容都不确定的话,可以多写几个Controller类来控制每一个Table页面的切换。
里面的代码我就不多解释了,之前的博文有详细的说明噢~
网络教学平台_本文出自 “雨松MOMO的程序世界” 博客,请务必保留此出处。
¥199.00
¥98.00
¥179.00
¥398.00