从UWP到SWIFT - TableBarController 和 Pivot
现在我还不是特别能适应swift中页面做bar的做法,感觉很奇怪。
现在我正在做一个简单的新浪微博,有一个主页,顶部有导航栏,底部是选项卡。
如果用wup来做的话,顶部应该是我们自己写的Usercontcontro,然后再用一个pivot,来自定义header之类的就能完成。整体工作量再blend上面就能完成。但是来看看swift要怎么做。
swift中的页面元素是有一定结构关系,先把用到的东西列出来
UITabBarItem(扫一扫和添加好友)
UIViewController(红色区域)
UINavigationController (顶部高度部分)
UITabBarController(选项卡容器)
要做出上图的东西:
1.建立内容, home主页
class HomeViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
2.将home主页加上navigation的属性(类似于uwp中pivotItem)
let nvc = UINavigationController(rootViewController: HomeViewController())
这里补充下,转换为uinavigationcontroller后,页面就可以通过nvc.navigationController?.pushViewController()来页面跳转,当然UI上也会出现顶部的条,也多了title等属性。
3.将nvc加入到UITabBarController
let table = UITabBarController()
table.addChildViewController(nvc)
4.显示到UI
self.window?.rootViewController = table 或者通过跳转页面方法到table
到了这里,table就已经是一个页面了,是不是很神奇。在uwp的理解,这还仅仅是个usercontrol,我去~
5. 扫一扫和添加朋友
实际上将UIViewController转换为UINavigationController后,就有可以使用这些属性了
self.navigationItem.rightBarButtonItem = UIBarButtonItem
其实UINavigationController是继承于UIViewController,如果你不转换为UINavigationController,上述属性的内容是不能被显示出来的
后来我慢慢明白,在swift中,这些tmd都只是些模板而已,模板!或者说是几种特殊页面,都继承与基础View,这些都是为了帮我们快速开发出产品。我这个去~ 一时半会还不能跳出uwp中page的概念。在ios中,viewcontroller就是page,但是有特殊类型的page
从UWP到SWIFT - TableBarController 和 Pivot的更多相关文章
- 从UWP到SWIFT-页面间反向传值
页面1跳转到页面2,在页面2点击button后,页面1的内容被改变.实际使用 protocol(就是c#中的interface),将页面1的viewcontroller转换为protocol传入页面2 ...
- 从UWP到SWIFT-开始
hi,all 我呢,是一个win10 uwp的开发者,从wp7.wp8.wp8.1.win8.1 到现在的win10,一直在windows阵营,做过一些大家比较熟悉的东西现在也还是在做win10的uw ...
- UWP实现吸顶的Pivot
话不多说,先上效果 这里使用了一个ScrollProgressProvider.cs,我们这篇文章先解析一下整体的动画思路,以后再详细解释这个Provider的实现方式. 结构 整个页面大致结构是 & ...
- UWP 禁止Pivot swip 手势
以前想要禁止内置的手势动作,看了一下网上是设置 IsLocked="True". 但是拿到UWP上来,靠,设置了之后header只显示当前的那个header.这样的设计真是丑爆了. ...
- win10 uwp 修改Pivot Header 颜色
我们在xaml创建一个Pivot <Pivot Grid.Row="1"> <PivotItem Header="lindexi">&l ...
- UWP 解决Webview在Pivot里面无法左右滑动的问题
//为了解决webview在PivotItem里面,阻止pivot左右滑动. if (webView != null) { rootGrid.Children.Remove(webView); web ...
- [Swift]LeetCode724. 寻找数组的中心索引 | Find Pivot Index
Given an array of integers nums, write a method that returns the "pivot" index of this arr ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- 【完全开源】知乎日报UWP版:项目结构说明、关键源代码解释
目录 说明 项目结构 关键代码 演示视频 说明 上一篇博客将源码放出来了,但是并没有做过多的介绍,所以如果自己硬看可能需要花费很长的时间,尤其这些代码并不是自己写的.项目不算复杂但是也不算简单,这篇文 ...
随机推荐
- Sql Server R2还有备份数据库错误
错误信息描述 该数据库是运行版本10.50.1600的服务器上备份的.该版本与此服务器(运行版本10.00.1600)不兼容.请在支持该被份的服务器上还原该数据, 或者使用与此服务器兼容的备份(M ...
- forever让nodejs应用后台执行
nodejs一般是当成一条用户命令执行的,当用户断开客户连接,运用也就停了,很烦人.如何让nodejs应用当成服务,在后台执行呢? 最简单的办法: $ nohup node app.js & ...
- 今天初步了解了informix的锁的概念
今天初步了解了informix的锁的概念 2005-06-12 01:07:05 分类: IT生活 在load的时候,碰到好几次"-134 ISAM Error :no more loc ...
- iPhone 6 Screen Size and Web Design Tips
Apple updated its iPhone a bit ago making the form factor much bigger. The iPhone 6 screen size is b ...
- pandas修改列的顺序
http://www.cnblogs.com/zhoudayang/p/5414020.html cols = list(ret)cols.insert(0,cols.pop(cols.index(' ...
- js面向对象的使用方法
标准用法: function Sprite(){ //函数内容部设置属性 this.name='shimily'; } //原型上设置方法 Sprite.prototype.show=function ...
- Swift 07.关键字
每一种语言都有相应的关键词,每个关键词都有他独特的作用,来看看swfit中的关键词: 关键词: 用来声明的: class, deinit, enum, extension, func, import, ...
- 实现UniqueAttribute唯一性约束,sqlunique约束[转]
using System; using System.ComponentModel.DataAnnotations; using System.Data.Entity; namespace Zwj.T ...
- JAVA动手动脑多态
动手实验一:下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 先进行自我判断,得出结论后,运行TestCas ...
- iOS中文网址路径转换URLEncode
如果返回的URL中有中文可以用此方法转换 今天发现一个蛋疼的问题,服务端返回的urlString里面有时含有中文,使用 [NSURL URLWithString:urlString]生成URL对象时, ...