嗯,经过这几天的学习,我的第一个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应用-日记本的更多相关文章

  1. [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断

    大家好,阿里云将于3月10日23:00-4:00对负载均衡服务(SLB)做升级操作,升级期间SLB网络连接会有约4-8次闪断.由此给您带来麻烦,敬请谅解! 阿里云SLB升级公告内容如下: 尊敬的用户: ...

  2. 2016年12月10日 星期六 --出埃及记 Exodus 21:5

    2016年12月10日 星期六 --出埃及记 Exodus 21:5 "But if the servant declares, `I love my master and my wife ...

  3. 2016年11月10日 星期四 --出埃及记 Exodus 20:1

    2016年11月10日 星期四 --出埃及记 Exodus 20:1 And God spoke all these words: 神吩咐这一切的话说,

  4. 2014年7月10日,我人生的最重要Upgrade

    2014年7月10日上午,我的小公主顺利的出生于国妇婴.之前各种紧张,各种不安.在不安中的前天晚上陪着来上海的董博士于方先生在人民广场聚餐.大家都是工作几年的,各种感慨,对于工作中的零零种种.还有对未 ...

  5. 【2017年9月10日更新】ABP配套代码生成器(ABP Code Generator)帮助文档,实现快速开发

    ABP代码生成器介绍 ABP Code Generator 针对abp这个框架做了一个代码生成器,功能强大.分为两大功能点,一个是数据层,一个是视图层. 数据服务层:通过它,可以实现表设计.领域层初始 ...

  6. 成都Uber优步司机奖励政策(4月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. 北京Uber优步司机奖励政策(4月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. Network Real Trace Analysis 2015年12月10日

    了解网络中真实的流量,国内很难找到巨人的肩膀. WAND是新西兰waikato 大学计算机系的研究小组,主要做网络测量,大规模网络流量捕获,网络分析.还做专业的分析软件. libtrace是其开源的分 ...

  9. 优步UBER司机全国各地奖励政策汇总 (4月4日-4月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. 全国Uber优步司机奖励政策 (1月4日-1月10日)

    本周已经公开奖励整的城市有:北 京.成 都.重 庆.上 海.深 圳.长 沙.佛 山.广 州.苏 州.杭 州.南 京.宁 波.青 岛.天 津.西 安.武 汉.厦 门,可按CTRL+F,搜城市名快速查找. ...

随机推荐

  1. 移动mmbilling似乎有个BUG,通过JNI调用会抛出异常

    有人用JNI调用过mm么?不知道你成功了没有,我试了多种方法,有一个错误始终存在,怀疑上个BUG.使用方式: 通过NativeActivity的clazz获取ClassLoader,然后找到mm.pu ...

  2. vc++实现avi文件的操作

    为了对avi进行读写,微软提供了一套API,总共50个函数,他们的用途主要有两类,一个是avi文件的操作,一类是数据流streams的操作. 1.打开和关闭文件 AVIFileOpen ,AVIFil ...

  3. 关于ASP控件对象的一些简单操作

    在线人数 Application.Lock(); Application[).ToString(); Application.UnLock(); Label1.Text = Application[& ...

  4. Jquery 方法大全

    一.JQuery常用的方法 :(JQuery中90%都是方法,没有参数是获取,带参数是设置) $("#id").css('backgroundColor','blue'); .cs ...

  5. SSIS:捕获修改了的数据

    获取修改了的数据一般有三种方式: 1.使用一个datetime列 缺点:是并不是每个表都会有个‘修改日期’字段来让你判断行是否修改过 使用实例可以参考我之前的文章:SSIS: 使用最大ID和最大日期来 ...

  6. 内置的材质包含文件 .cginc

    Unity中包含几个文件,可以用于你的Shader程序,里面包含了预定义的变量和辅助函数.使用它需要用 #include指令 CGPROGRAM // ... #include "Unity ...

  7. CodeForces 447C DZY Loves Sequences DP

    题目:click here 题意:求给定序列更改其中一个元素后的最长连续上升子序列的长度 分析:最长的连续子序列有2种,一种是严格上升(没有更改元素)的长度加1,一种是两段严格上升的加起来. #inc ...

  8. ubuntu 16.04环境配置

    ubuntu 16:1.源cp /etc/apt/sources.list /etc/apt/sources.list.bkpvi /etc/apt/sources.list-+{    deb ht ...

  9. POJ 1840 Brainman(逆序对数)

    题目链接:http://poj.org/problem?id=1804 题意:给定一个序列a[],每次只允许交换相邻两个数,最少要交换多少次才能把它变成非递降序列. 思路:题目就是要求逆序对数,我们知 ...

  10. C++对象模型3--无重写的单继承

    C++对象模型中加入单继承 不管是单继承.多继承,还是虚继承,如果基于“简单对象模型”,每一个基类都可以被派生类中的一个slot指出,该slot内包含基类对象的地址.这个机制的主要缺点是,因为间接性而 ...