热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【一步一步学IOS5】Storyboard创建TabBar控

下面,我们来继续完善Storyboard 项目   1)如何创建Tab B ar 控制键 2)如何使用UIWebView创建About页面   1.Tab

下面,我们来继续完善Storyboard 项目

 

1)如何创建Tab B ar 控制键

2)如何使用UIWebView创建About页面

 

1.Tab Bar控制器 和UIWebView

 

Tab Bar 控制器在每一个tab中显示一个独特的视图,通常,一个Tab Bar 至少包含2个tab s ,根据需要最多可以添加5个tabs

 

UIWebView 是加载web内容的轻便组组件。在一些情况下,你希望在App中显示一个单一的web页面,或者让用户在App中访问外部web页面。你可以在App中简单嵌入UIWebView对象,向它发送请求,加载web内容。

 

2.创建Tab Bar控制器

 

现在返回Xcode 项目,首先,选择MainStoryboard.storyboard 中的Navigation Controller ,接着选择Editor 菜单下面的 Embed in 子菜单,然后选择Tab Bar Controller 选项

 

此时,Xcode自动将导航控制器嵌套到一个tab bar控制器中。

 

3.更改Tab Bar 子项名称

 

默认情况下,Tab Bar 子项没有名称,也没有图标。在导航控制器中选择tab子项,你可以在Attributes Inspector 窗口,自由修改名称,并指定图标。Tab Bar 子项默认为custom 标识符。当设定为custom时,意味着你需要手动指定标题(title)和图标。

 

你也可以使用一些内置的tab bar 项目(如More、Favorites 和 T op Rated 等等),这些已经包含了图标。这里为了简化教程,使用这些内置的项目。选择Featured 作为标识符

 

 

4.运行App

 

现在可以运行App了。点击Run按钮,界面如下:

 


【一步一步学IOS5 】 Storyboard 创建Tab Bar控制器和Web视图

5.添加一个新的Tab

 

你可以使用tab bar 界面来组织不同的操作模式。每一个tab包含特定的功能。显然,在使用tab bar控制器时,在App中至少包含2个tabs。因此,我们将创建一个新的tab,用于显示App和About页面。

 

拖拉一个Navigation Controller 对象到Storyboard中。默认的导航控制器和表视图(Table View)控制器相关联。

 

接着,我们需要在新的导航控制器(Navigation Controller)和现存的Tab Bar 控制器之间建立关联。按住Control 键,点击Tab Bar 控制器,并拖到新的导航控制器上。

 

释放按钮,弹出一个下拉菜单,选择Relationship-View Controllers 选项,这样告诉Xcode:新的导航控制器是Tab Bar控制器的一部分。

 

一旦建立上述关联,Tab Bar控制器自动添加一个新的Tab,并关联到新的导航控制器上。

 

更改新的导航控制器的tab bar 子项为More。保存Stroyboard。再次运行App。

 

界面如下:

 


【一步一步学IOS5 】 Storyboard 创建Tab Bar控制器和Web视图

6.使用UIWebView 创建About界面

 

现在More tab 是空白的,我们将实现一个web视图,显示App的About页面,首先,删除Table View Controller,并替换为一个View Controller。简单选择Table View Controller,点击Delete 按钮移除它,接着从对象库拖拉View Controller对象到storyboard界面

 

现在,空白的View Controller 并没有和导航控制器相关联。我们需要关联它们。按住Control键,选择导航控制器,并拖拉到View Controller上。

 

和我们之前做的一样,选择RelationShip - View Controllers 选项。

 

这个视图控制器的主要目的是呈现About web页面。iOS SDK 有一个内置的UIWebView 对象可用来显示web内容。你可以简单嵌入UIWebView 对象到任一视图控制器中,随后向它发送一个HTTP请求,它将自动装在Web内容。

 

在对象库找到Web View控件,并添加到视图控制器中。

 

7.赋值新的视图控制器类

 

和前面提到过一样,一个空白的视图控制器赋值为默认的UIViewController 类,它仅仅提供了基本的视图管理模型。显然,它没有提供控制UIWebView的变量。我们必须创建一个新的视图控制器类,继承自UIViewController类。

 

在项目导航中,右击RecipeBook 文件夹,选择New File...

 

设置类名为AboutViewController,并设置Subclass of 选项为UIVie wController,确定没有勾选With XIB for user interface选项。因为我们使用Storyboards 来设计用户界面,因此不必创建独立的interface builder 文件。点击next 按钮,并保存文件到项目文件夹中。

 

接着,赋值视图控制器为AboutViewController类。

 

操作步骤: 返回Storyboards 编辑器,选择视图控制器,然后在Identity Inspector窗口,更改class 属性值为 AboutViewController。

 

8.使用UIWebView加载请求

 

为了请求UIWebView加载Web内容,我们必须编写几行代码。

 

1)在Xcode 项目中添加about.html 页面 和about.jpg 文件

 

2)为UIWebView 创建一个变量,并和Storyboard 中的Web视图对象建立关联

 

3)使用UIWebView 中loadRequest:方法加载web内容;

 

8.添加About.html 文件

 

文件见附件

 

9.为UIWebView 创建一个变量

 

选择AboutViewController.h 文件,为UIWebView 添加一个property

 


@interface

AboutViewController :

UIViewController

 

@property

(

nonatomic

,

strong

)

IBOutlet



UIWebView


*webView;

 

@end

 

切换到AboutViewController.m 文件。添加 synthesize 指令

 

@implementation AboutViewController

 

@synthesize

webView;

 

和通常一样,需要建立webView 变量和可视化web视图控件之间的连接。在Storyboards 编辑器,按住Control键,并点击View Controller图标,拖拉到Web View 对象上,释放按钮,在弹出的下拉菜单中,选择webView变量。

 

10.加载web内容

 

在webDidLoad 方法,添加如下代码加载about.html 页面内容:

 

- (

void

)viewDidLoad

{


    [


super



viewDidLoad

];





//And code to load web content in UIWebView


   


NSURL


*url = [


NSURL



fileURLWithPath

:[[


NSBundle



mainBundle

]

pathForResource

:


@"about.html"



ofType

:


nil


]];

   

NSURLRequest

*request = [

NSURLRequest


requestWithURL

:url];

    [

webView


loadRequest

:request];

}

 

UIWebView 类提供了一个便利的方法loadRequest: 来加载web内容,你需要做的是传入一个URL请求,上述代码首先以NSURL 对象返回about.html 文件的系统路径,然后使用URL对象创建NSURLRequest对象。 最后一行的向web view 对象发送请求。

 

11.最后运行效果

 


【一步一步学IOS5 】 Storyboard 创建Tab Bar控制器和Web视图

 


【一步一步学IOS5 】 Storyboard 创建Tab Bar控制器和Web视图




推荐阅读
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • imnewtotheswiftandxcodeworld,soimhavingaproblemtryingtointegrateapackagetomypro ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 在分析和解决 Keepalived VIP 漂移故障的过程中,我们发现主备节点配置如下:主节点 IP 为 172.16.30.31,备份节点 IP 为 172.16.30.32,虚拟 IP 为 172.16.30.10。故障表现为监控系统显示 Keepalived 主节点状态异常,导致 VIP 漂移到备份节点。通过详细检查配置文件和日志,我们发现主节点上的 Keepalived 进程未能正常运行,最终通过优化配置和重启服务解决了该问题。此外,我们还增加了健康检查机制,以提高系统的稳定性和可靠性。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • Linux下Google Test (GTest)测试环境搭建步骤
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • [译]  OS X 和 iOS 的测绘框架Core Plot 入门教程
    [译] OS X 和 iOS 的测绘框架Core Plot 入门教程 ... [详细]
  • 项目地址:github.comDanie1sDNS…DNSPageViewDNSPageView一个纯Swift的轻量级、灵活且易于使用的pageView框架 ... [详细]
  • iOS Auto Layout Demystify
    BookDescripterAutoLayouttransformsthewayyoucreateiOSuserinterfaces.Asflexibleasitispowerfu ... [详细]
author-avatar
huangbaihao54
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有