热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

如何创建一个TabbarApplication(xcode4.2中或者代码的方式)

Xcode4.2缺省创建的TabbedApplication是这个样子的。而且类被命名为XXFirstViewController,XXXSecondViewController,让我们很不爽,很多时候,我们需要更有意义的类名,更多的tab选项。那么我下面给大家演示以下如何自己定义这些。我们假如创建一个有三

Xcode 4.2 缺省创建的Tabbed Application是这个样子的。 而且类被命名为XXFirstViewController,XXXSecondViewController,让我们很不爽,很多时候,我们需要更有意义的类名,更多的tab选项。那么我下面给大家演示以下如何自己定义这些。 我们假如创建一个有三

Xcode 4.2 缺省创建的Tabbed Application是这个样子的。


而且类被命名为XXFirstViewController,XXXSecondViewController,让我们很不爽,很多时候,我们需要更有意义的类名,更多的tab选项。那么我下面给大家演示以下如何自己定义这些。

我们假如创建一个有三个选项的工程,并且三个相关的viewcontroller分别是普通的,table View,带table view的导航模式的,并且命名为FViewController, SViewController,TViewController。

选择新建一个Tab bar Application,并把工程名称命名为tTabApp。



建好后的工程目录如下:


删除上面的tcFirstViewController.h,tcFirstViewController.m,tcSecondeViewController.h,tcSecondViewController.m,tcFirstViewController.xib,tcSecondViewController.xib六个文件。

在tTabApp上点击右键,加入FViewController.


选择UIViewController subclass



输入类名为FViewController,并且下面一定要选择Subclass of : UIViewController.


还需要选中With XIB for user interface.




然后依此假如另外两个View Controller,注意后面的两个必须在最后一个界面上的Subclass of : UITableViewController

这时候的工程目录如下:


在FViewController.m中修改一个函数

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

// Custom initialization

//self.title = @"第一个";

self.tabBarItem.title =@"第一个";

self.tabBarItem.image = [UIImage imageNamed:@"first"];

}

returnself;

}



修改SViewController中几个函数如下:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

// Custom initialization

self.tabBarItem.title =@"第二个";

self.tabBarItem.image = [UIImage imageNamed:@"second"];

}

returnself;

}

#pragma mark - Table view data source


- (NSInteger)numberOfpsInTableView:(UITableView *)tableView

{

#warning Potentially incomplete method implementation.

删除上面的一样,这行永远会在编译期间生成一个警告

// Return the number of ps.

return 1;

上面一行0改为1

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInp:(NSInteger)p

{

#warning Incomplete method implementation.

// Return the number of rows in the p.

return 1;

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {

cell = [[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier]autorelease];

}

cell.textLabel.text =@"1111";

上面这行是加入的,

// Configure the cell...

return cell;

}

在TViewController中做同样的更改,并且注意cell.textLabel.text = @"1111";改为cell.textLabel.text = @"222222";。以示区分。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

// Custom initialization

self.title = @"第三个";

self.tabBarItem.image = [UIImage imageNamed:@"second"];

}

returnself;

}


在tcAppDelegate.m文件中加入import如下:

#import"FViewController.h"


#import"SViewController.h"

#import"TViewController.h"


在tcAppDelegate.m文件中修改函数

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelease];

// Override point for customization after application launch.

UIViewController *viewController1 = [[FViewControlleralloc]initWithNibName:@"FViewController"bundle:nil];

UIViewController *viewController2 = [[SViewControlleralloc]initWithNibName:@"SViewController"bundle:nil];

UIViewController *viewController3 = [[TViewControlleralloc]initWithNibName:@"TViewController"bundle:nil];

UINavigationController *navigatiOnController= [[UINavigationControlleralloc]initWithRootViewController:viewController3];

self.tabBarController = [[[UITabBarControlleralloc]init]autorelease];

self.tabBarController.viewControllers = [NSArrayarrayWithObjects:viewController1, viewController2, navigationController,nil];

[viewController1 release];

[viewController2release];

[viewController3release];

[navigationControllerrelease];


self.window.rootViewController =self.tabBarController;

[self.windowmakeKeyAndVisible];

returnYES;

}


最后形成的效果是。


推荐阅读
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 本文提供了 Xcode 12.0 和 12.1(版本号 16B91)开发工具包的下载链接及安装步骤。通过 Finder 和快捷键,您可以轻松访问和配置 DeviceSupport 文件夹,确保 Xcode 正常运行。 ... [详细]
  • 本文探讨了使用React Native框架开发的应用,在通过AppCenter构建iOS版本时遇到的‘CopyPlistFile’命令失败的问题,并提供了详细的解决方案。 ... [详细]
  • 如何使用Ionic3框架创建首个混合开发应用
    混合开发是指结合原生(Native)与网页(Web)技术进行移动应用开发的方法。本文将详细介绍如何利用Ionic3这一流行的混合开发框架,从环境搭建到创建并运行首个应用的全过程。 ... [详细]
  • 本文详细介绍如何在 macOS 上编译 FFmpeg 3.1.1,并将其集成到 iOS 项目中,包括必要的环境配置和代码示例。 ... [详细]
  • Cocos2d-x 中 Xcode 项目资源文件夹引用问题解析
    本文探讨了在使用 Cocos2d-x 开发过程中,如何正确配置 Xcode 项目以确保资源文件夹内的文件能够被正确读取。特别指出了一种常见的错误配置及其修正方法。 ... [详细]
  • 本文详细介绍了如何通过微信H5网页授权机制获取用户的code,并进一步获取用户的基本信息,包括必要的配置步骤和前端代码实现。 ... [详细]
  • 本教程旨在指导开发者如何在Mac上设置React Native的开发环境,以进行iOS应用的开发。文中详细介绍了必要的软件安装步骤,包括Xcode、Homebrew、Node.js、Watchman以及React Native CLI等工具的安装方法。 ... [详细]
  • 我在项目中发现设置了 GCC_NO_COMMON_BLOCKS = NO 的配置项,位于 Apple LLVM 编译器 3.1 的代码生成设置中。 ... [详细]
  • iOS中UITabBar与UINavigationController的集成及样式自定义
    探讨如何在iOS开发中有效结合UITabBarController和UINavigationController,并实现自定义样式。项目源码已托管至GitHub:https://github.com/zcsoft/ZCTabNav ... [详细]
  • 作为一名在大型手机游戏公司工作的程序员,尽管主要负责游戏逻辑和内容的开发,但对iOS底层开发接触较少。现在有了iPhone和可以虚拟MAC环境的电脑,希望能找到有效的iOS开发学习路径。 ... [详细]
  • iOS 10 系统下 AVPlayer 视频播放故障排除
    在使用 iOS 10 系统时,如果遇到 AVPlayer 无法正常播放视频的问题,这可能是由于 Xcode 中异常处理设置不当导致的。本文将详细探讨如何调整 Xcode 设置以解决这一问题。 ... [详细]
  • 本文详细介绍了如何在iOS5中创建和理解简单的Hello World应用,包括Interface Builder的使用、Objective-C源代码文件的结构以及事件处理机制。 ... [详细]
  • 本文档提供了在iOS开发中使用OClint进行静态代码分析的详细步骤,包括安装、更新和使用方法,以及相关资源链接。 ... [详细]
  • Xcode 快捷键与实用技巧
    在iOS开发过程中,熟练掌握Xcode的快捷键可以显著提升工作效率,减少不必要的鼠标操作,让开发者更加专注于代码编写。本文将介绍一些常用的Xcode快捷键及技巧,帮助开发者提高开发效率。 ... [详细]
author-avatar
CHERRYMJM
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有