Xcode中不用Storyboard,用純xib建立TabBar模式檢視
阿新 • • 發佈:2019-01-06
大熊貓豬·侯佩原創或翻譯作品.歡迎轉載,轉載請註明出處.
如果覺得寫的不好請多提意見,如果覺得不錯請多多支援點贊.謝謝! 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效果如下: