Xcode中不用Storyboard,用纯xib创建TabBar模式视图

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.

如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)



如果要开发Tab类型视图的App,在Xcode中可以使用对应的模板

该模板自然使用的是Storyboard那一套东东,为了更清楚的了解xib布局,我们下面不用Storyboard模板来打造一个TabBar视图的App.

第一步:创建Single View App

打开Xcode,选择Single View App模板,创建新项目.然后将项目中的所有storyboard文件删除,同时将ViewController类删除.

第二步:清除启动界面

将项目中的关于启动界面的部分清空:

你还可以将info.plist文件中对应的2个属性删掉,不过貌似不删也可以

第三步:新建UIViewController视图

选择新建Cocoa Touch Class,选择新类名为RedVC,继承于UIViewController,选择创建xib文件.打开RedVC.m文件,添加如下方法:

-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = @"Red";
        UIImage *image = [UIImage imageNamed:@"2.png"];
        CGImageRef imageRef = image.CGImage;
        self.tabBarItem.image = [[UIImage imageWithCGImage:imageRef scale:2 orientation:
                                 UIImageOrientationDown] imageWithRenderingMode:
                                 UIImageRenderingModeAlwaysOriginal];
    }
    return self;
}

类似的再创建2个类,分别为GreenVC和WhiteVC,同样甚至对应的上述方法,并做适当调整.

第四步:修改App启动方法

打开AppDelegate.m文件,按如下代码修改方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

    UIViewController *vc1 = [[WhiteVC alloc]initWithNibName:@"WhiteVC" bundle:nil];
    UIViewController *vc2 = [[RedVC alloc]initWithNibName:@"RedVC" bundle:nil];
    UIViewController *vc3 = [[GreenVC alloc]initWithNibName:@"GreenVC" bundle:nil];

    _tabBarController = [UITabBarController new];
    _tabBarController.viewControllers = @[vc1,vc2,vc3];

    [self.window setRootViewController:_tabBarController];

    [self.window makeKeyAndVisible];

    return YES;
}

OK我们基本上完成了,编译运行App效果如下:

时间: 2024-10-05 15:48:57

Xcode中不用Storyboard,用纯xib创建TabBar模式视图的相关文章

怎样在xcode中使用storyboard

StoryBoard是iOS 5的新特征,目的是取代历史悠久的NIB/XIB,对于已经习惯了xib文件的孩子们来说,StoryBoard还不是那么熟悉.经过两天的研究,有了一些心得,在此分享. 一.怎样使用storyboard简单实现Push页面,过程例如以下: 1.创建一个带有storyboard的singleview application应用程序如图. 创建好的应用程序已经自己主动创建好了一个和MainStoryboard连接好的ViewController. 2.在MainStorybo

不用storyboard,用xib开发

1. 新建一个Empty项目 2. 新建一个UIViewController的子类,命名为ViewController,生成的对应文件为ViewController.h, ViewController.m及ViewController.xib 3. 确认工程TAGETS中的Main interface为空 4. 打开AppDelegate.m文件,添加头文件#import "ViewController.h",在application:didFinishingLaunchingWith

Xcode中不用一行代码实现button圆角

进入 Identity Inspector ,用 User Defined Runtime Attributes  定义一个键值,如下图: keyPath是layer.cornerRadius; Type是Number;Value是22,改变这个值可改变圆角弧度.

114自定义 UITableViewCell(扩展知识:如何使用xib创建自定义的表格视图单元格 KMTableViewCell)

关键操作: 效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UITableViewController 4 @property (strong, nonatomic) NSMutableArray *mArrDataList; 5 @property (strong, nonatomic) NSMutableArray *mArrImageList; 6 7 @end ViewCo

用Xib创建控制器

注:用Xib创建控制器作为视图展示时,系统自己会自动去找之相似的xib文件,即(按照优先度从高到低)先找VSXibViewControll.xib文件,再找VSXibView.xib文件,再找与之相关多其他xib文件. 步骤一:xib文件名称与控制器类的名称无关. 1.创建一个VSXibViewControll.h, VSXibViewControll.m文件,再创建一个vsstar的xib文件. 2.点击VSstar.xib文件,给大视图加一个颜色,之后选择File`s Owner,选择右侧"

iOS UICollectionView的使用(用storyboard和xib创建)

1. 在storyboard中,拖出1个UICollectionViewController 2. 新建file--Cocoa Touch Class,继承自UICollectionViewController,假设名字是CollectionDemo 3. 在storyboard, 把刚才拖出来的UICollectionViewController的class改成CollectionDemo 4. 在 CollectionDemo.m 中实现,数据源方法 - (NSInteger)collect

XCODE中使用Main.Storyboard拉入控件并实现事件(Swift语言)

如何在XCODE中的Main.Storyboard内拉入控件并实现一个简单的效果呢?本人由于刚接触Swift语言不久,对于IDE的操作还是很生疏,不懂了就在网上参考了网上前辈们的文章.以下我将演示如何用Swift语言配合Main.Storyboard演示一个小例子,对于新建一个SingleView Application在这里就不多说了. 创建好的应用程序已经自动创建好了一个和Main.Storyboard连接好的ViewController. 接下来我们在Main.Storyboard中的Vi

IOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用

一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; // 返回第component有多少行 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

Xcode中如何快速创建一个Objc与Swift桥接的头文件

我们知道如果在一个纯的Swift项目中要想使用Objc/C++之类的代码,必须使用桥接头文件. 下面我简要的说一下如何快速而又安全的创建一个桥接头文件. 首先在Xcode中选择新建文件,从Objective-C模板创建一个新的.m文件,名字无所谓,类型选择"空文件",点击next 随便找一个地方存放上述文件,在点击创建的时候,Xcode会弹出一个对话框,询问你是否配置一个桥接头文件: 这里选择创建,然后你将看到在你的项目中新建了2个文件,一个是.m文件,另一个就是桥接头文件: 最后将那