6月10日-IOS应用-日记本
嗯,经过这几天的学习,我的第一个IOS应用,日记本算是学习完毕了,下面写一篇日记,记录所学到的知识和需要继续学习的地方。
1,首先是ViewController,必须添加两个协议UITableViewDataSource和 UITableViewDelegate,必须实现这两个协议的两个方法,tableView numberOfRowsInSection和tableView cellForRowAtIndexPath,前者返回行数后者设置行内容。
2,搜索框,搜索框需要加载协议UISearchBarDelegate,它常用的两个方法-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText,--文本修改时触发,-(void) searchBarSearchButtonClicked:(UISearchBar *)searchBar点击搜索按钮时触发。
3,向下一个界面传递值。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
这个方法是写在父页面里的,比如在里面写-GLYEditViewController *EditVC = segue.destinationViewController;
EditVC.title = deletDate;
那你子页面的title就等于deletDate。不管你点哪个按钮,跳转到哪个页面,你的子页面的title都等于deletDate。
4,//允许删除
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
returnUITableViewCellEditingStyleDelete;
}
你这个方法可返回很多方法,然后
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{}
会接收你返回的方法名,比如
if (editingStyle == UITableViewCellEditingStyleDelete)
{
//假如删除,做一些操作。
}
5,谓词搜索,主要用来搜索字符串或数组,已做过笔记。
6,设置空间的样式,例如
// 设置文本框的宽,圆角及颜色
_ContentView.layer.borderWidth = 0.2;
_ContentView.layer.cornerRadius = 5.0;
_ContentView.layer.borderColor = [UIColorgrayColor].CGColor;
一般layer.后面的属性基本能猜测出用途。
7,你给某个视图定义了identifier,然后想返回某个视图。
UIStoryboard *storyboard = self.storyboard;
// //此identifier在storyboard上相应页面对应的设置里填写,必须保持一致
UIViewController *push = [storyboard instantiateViewControllerWithIdentifier:@"DiaryList"];
[self.navigationControllerpushViewController:push animated:YES];
8,页面的刷新。
[rootController.tableView reloadData];
9,
CoreData--引入框架,并在appDelegate里面做好了模块初始化的相关操作。
managedObjectModel里面,你模块的名字要对应。
MOdel.xcdatamodeld文件描述了表的结构以及表之间的关系,你看的视图不是表也不是库更不是数据,CoreData是盖在数据库上的一层厚厚的钢板,让你啥都看不见,必须按它给的结构写一堆死死的代码。
// 获取数据
GLYAppDelegate *managed = [[GLYAppDelegatealloc] init];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"DiaryData"];
// 排序
NSSortDescriptor *dateSort = [[NSSortDescriptoralloc] initWithKey:@"date"
ascending:NO];
fetchRequest.sortDescriptors = @[dateSort];
NSError *requestError = nil;
NSArray *ArrayDiaryData = [managed.managedObjectContext executeFetchRequest:fetchRequest
error:&requestError];
// 拿到值
tableData = [NSMutableArrayarrayWithObjects:nil];
details = [NSMutableArrayarrayWithObjects:nil];
for (DiaryData *thisDiaryData in ArrayDiaryData) {
[tableData addObject:thisDiaryData.title];
[details addObject:thisDiaryData.date];
}
又比如删除
GLYAppDelegate *managed = [[GLYAppDelegate alloc] init];
NSError *error;
// 设置谓词并搜索
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"DiaryData"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"date==%@", deletDate];
NSArray *arrarResult = [managed.managedObjectContext executeFetchRequest:fetchRequest
error:&error ];
if (!error) {
for (DiaryData *object in arrarResult) {
[managed.managedObjectContext deleteObject:object];
}
}
if ([managed.managedObjectContext hasChanges]) {
[managed.managedObjectContext save:&error];
}
变得繁琐的新事物总是不讨人喜欢,这块需要继续学习。
10,自动布局,3.5寸4寸屏幕必须兼容,过不久5寸屏幕也要兼容,横竖屏幕需要兼容,,这块-有自动布局,衡平直接不支持或换sotryboard等方法,一般不把大空间的宽高写死。
结余:简单要记录的就是这些,可能理解的不够深入,所以此文是日记不是教材,,嗯,收拾下代码开始第二个app的开发吧。
6月10日-IOS应用-日记本的更多相关文章
- [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断
大家好,阿里云将于3月10日23:00-4:00对负载均衡服务(SLB)做升级操作,升级期间SLB网络连接会有约4-8次闪断.由此给您带来麻烦,敬请谅解! 阿里云SLB升级公告内容如下: 尊敬的用户: ...
- 2016年12月10日 星期六 --出埃及记 Exodus 21:5
2016年12月10日 星期六 --出埃及记 Exodus 21:5 "But if the servant declares, `I love my master and my wife ...
- 2016年11月10日 星期四 --出埃及记 Exodus 20:1
2016年11月10日 星期四 --出埃及记 Exodus 20:1 And God spoke all these words: 神吩咐这一切的话说,
- 2014年7月10日,我人生的最重要Upgrade
2014年7月10日上午,我的小公主顺利的出生于国妇婴.之前各种紧张,各种不安.在不安中的前天晚上陪着来上海的董博士于方先生在人民广场聚餐.大家都是工作几年的,各种感慨,对于工作中的零零种种.还有对未 ...
- 【2017年9月10日更新】ABP配套代码生成器(ABP Code Generator)帮助文档,实现快速开发
ABP代码生成器介绍 ABP Code Generator 针对abp这个框架做了一个代码生成器,功能强大.分为两大功能点,一个是数据层,一个是视图层. 数据服务层:通过它,可以实现表设计.领域层初始 ...
- 成都Uber优步司机奖励政策(4月10日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 北京Uber优步司机奖励政策(4月10日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Network Real Trace Analysis 2015年12月10日
了解网络中真实的流量,国内很难找到巨人的肩膀. WAND是新西兰waikato 大学计算机系的研究小组,主要做网络测量,大规模网络流量捕获,网络分析.还做专业的分析软件. libtrace是其开源的分 ...
- 优步UBER司机全国各地奖励政策汇总 (4月4日-4月10日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 全国Uber优步司机奖励政策 (1月4日-1月10日)
本周已经公开奖励整的城市有:北 京.成 都.重 庆.上 海.深 圳.长 沙.佛 山.广 州.苏 州.杭 州.南 京.宁 波.青 岛.天 津.西 安.武 汉.厦 门,可按CTRL+F,搜城市名快速查找. ...
随机推荐
- js正则验证"汉字"
var nickname = value; var regex = new RegExp("^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9_]){1 ...
- Spring 上下文
Spring 上下文WebApplicationContext.是服务器启动的时候加载ContextLoaderListener 的时候存在 ServletContext 中 servletConte ...
- Installing perl and writing your first perl program in Ubuntu
Installing perl and writing your first perl program in Ubuntu Installing perl and writing your f ...
- solaris 操作系统配置联网
1. 设置主机名: etc/hostname.vmxnet0 hannick 2.设置主机名和ip地址的映射: etc/hosts 127.0.0.1 localhost 192.108.1.123 ...
- SSO 基于Cookie+fliter实现单点登录(SSO):工作原理
SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分. SSO的一种较为通俗的定义是:SSO是指訪问同一server不同应用中的受保护资源的同一用户,仅仅须要登录一次,即 ...
- zoj 3197 Google Book
这道题告诉我想法正确是多么重要,先是我自己想的时候没考虑到最后的页码作为循环的终止,我一直以区间个数来终止循环,这是多么愚蠢啊!然后,我看了别人的代码,但是很不幸超时了! 我自己wa的代码,我感觉很正 ...
- C# 获得当前应用程序路径
1.获得当前应用程序的路径最稳定的方法:AppDomain.CurrentDomain.BaseDirectory 生成的路径:../项目名称/bin/Debug下的路径
- Android应用开发基础篇(10)-----Menu(菜单)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/28/2372101.html 一.概述 Menu,简单来理解就是当你按下手机的“menu”键时所 ...
- 条款16:成对使用new和delete时,采取相同的形式
问题聚焦: 我们都知道,new和delete要成对使用,但是有时候,事情往往不是按我们预期的那样发展. 对于单一对象和对象数组,我们要分开考虑. 遇到typedef时,也需要搞 ...
- selenium 学习笔记 ---新手学习记录(4) 问题总结(java)-autoit3脚本使用
1.安装autoit3 下载地址:点我下载 (提取码:9633) 提取码 下载完成后,一直下一步即可 2.上传头像使用脚本 代码如下: ControlFocus("打开",&quo ...