今日收获--关于编程思想的小结(2014-09-11 16:46:20)

今天的主要任务是添加5个模块的打印模板,如果是按照往常的思维,我可能会直接建立5个ViewController分别对应5个打印模板,然后在分别对其xib文件进行修改来满足需求。但是,今天我换了一种思路,首先,对于复杂的画面,如果手动编程进行添加会非常的消耗时间和精力,而且不利于直观调整UI详细界面的位置,因此第一种尝试就是使用xib文件,所有的空间直接拖拽生成,无需手动添加;其次,也是今天比较突破自我的一点,经过多次尝试和思考,我并没有使用常规思路去建立5个VC,而是直接建立一个打印模板,想办法让这5个模板去使用同一模板,其中只是去简单修改模板内的部分内容,最后成功实现。

//使用代理 实现点击不同的行 进入对应的打印模板 并将row作为参数传值过去 (这里可以看到并没有将点击时间分开处理)
if (row >= 2 || row <= 6) {
            [self.settingDelegate didTapPrintTemplateWith:row];
        }
//将index赋值给indexTag(后面会用到,很重要的判断条件) 这个方法主要对模板进行初始化 并设置代理事件 最后实现点击pushVC事件
- (void)didTapPrintTemplateWith:(NSInteger)index
{
    indexTag = index;

    PrintTemplate *template = [[PrintTemplate alloc] initWithNibName:@"PrintTemplate" bundle:nil];

    self.template = template;
    self.template.delegate = self;

    [self.navigationController pushViewController:template animated:YES];
}

这里说一下自己在这部分出现的问题:起初我将模板内容的修改代码加在了模板初始化和push事件之间,结果内容修改的代码并没有实现预期的结果,而是毫无反应。经过排查,发现了问题所在:我将内容修改代码加载到了template这个VC的viewDidLoad方法之前了,所以这些代码是没有任何作用的(所有的画面上的label都没有加载,打印为空null)。后修改为利用委托去回调changeText方法,前提是template在viewDidLoad实现之后。

// PrintTemplate.m
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.delegate changeText];
}
//利用此方法来实现不同模板内容的修改(indexTag在此处作为唯一判断)
- (void)changeText
{
    if (indexTag == 2) {
        //采购入库
        self.template.titleLb.text = @"采购单";
        self.template.currentDate.text = @"14-08-26 17:29";
        self.template.codno.text = @"单据编号 : PU1408240000001";
        self.template.billdate.text = @"单据日期 : 20140824";
        self.template.supplier.text = @"供应商 : 上海一店";
        self.template.customer.hidden = YES;
        self.template.note.hidden = YES;
        self.template.totamt.text = @"总合计 : 1   200.00";
        self.template.saler.hidden = YES;
        self.template.payment.text = @"付款方式 :";
        self.template.cash.text = @"现金 : 0.00";
        self.template.credit.text = @"刷卡 : 0.00";
        self.template.account.text = @"转账 : 0.00";

        NSArray *itemsArr = @[@"商品",@"颜色",@"尺寸",@"成交价",@"数量",@"销售金额"];
        for (int i = 0; i < [itemsArr count]; i++) {
            [[self.template.itemsTitles objectAtIndex:i] setText:[itemsArr objectAtIndex:i]];
        }

        NSArray *items = @[@"208393",@"蓝色",@"43",@"200.00",@"1",@"200.00"];
        for (int i = 0; i < [items count]; i++) {
            [[self.template.items objectAtIndex:i] setText:[items objectAtIndex:i]];
        } else if (indexTag == 3) {
        ......
}
时间: 2024-11-05 11:48:18

今日收获--关于编程思想的小结(2014-09-11 16:46:20)的相关文章

List接口方法使用(PS:Java 编程思想阅读小结)

1.用代码说话 1 package JavaProject; 2 import java.util.*; 3 4 public class A{ 5 public static void main(String[]args){ 6 List<String> list=new ArrayList<String>(Arrays.asList("ab","cd","ef","gh")); 7 8 /** 9

2014.09.11 cURL

今天主要学习了cURL方法(PHP),主要是想通过cURL模拟用户登录教务系统,然后自动获取某名学生 的学分,但是从下午到晚上都没有把代码搞明白,到现在还没有登录成功,参考别人的代码发现代码都 差不多相同,找不出来到底有什么问题,大三的大大和大二的大神们都在学JAVA和C#,让我这个还在琢 磨PHP的深感压力.. 下面是今天调试的部分代码: <?php$username='xxxx';//账号$password='xxxx';//密码$cookie_file =tempnam('./temp',

c++编程思想(一)--对象导言

回过头来看c++编程思想第一章,虽然只是对c++知识的一个总结,并没有实质性知识点,但是收获还是蛮多的! 下面感觉是让自己茅塞顿开的说法,虽然含义并不是很准确,但是很形象(自己的语言): 1.类描述了一组具有相同特性(数据元素)和相同行为(功能)的对象,本质就是一个数据类型,已存在的数据类型只是表示计算机的存储单位,定义新的类就是为了与问题结合,解决问题-----不要把类想的很复杂,直接抽象成这样 2.类要产生工作,会有一个接口,来实现功能 3.程序猿分为类创建者和客户程序猿(调用别人的类).客

《Java编程思想(第4版)》pdf

下载地址:网盘下载 内容简介 编辑 本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形.从Java的基础语法到最高级特性(深入的面向对象概念.多线程.自动项目构建.单元测试和调试等),本书都能逐步指导你轻松掌握.[1] 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作.本书的作者拥有多年教学经验,对C.C++以及Java语言都有独到.深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概

所谓的“编程思想”

很多事情,当你把它想得很严肃.很庄重,并且当你做这些事情的时候,注定很多遗憾将永远无法得到填补,编程也不例外. 很多时候,当一个人总是很严肃.很庄重,并且当他做一些事情的时候,注定很多细节将永远留下遗憾,当他编程的时候也不例外. 所以,凡是事情,怀着轻松的态度把它做好就够了.凡是为人,保持愉悦的心情做好当下的事情就够了.可能看了很多学究的书籍,看到编程思想,我自然而然就想到了面向对象的编程思想,想到了继承.封装以及多态三大特征,想到SOLID五大特性,想到了“找到共性,隔离变化”.但是,这些理论

Java编程思想总结笔记Chapter 3

本章需要总结的不多,但细节的东西需要注意,有些很容易遗忘. 第三章 目录: 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.5 算数操作符 3.6 自动递增和递减 3.7 关系操作符 3.8 逻辑操作符 3.9 直接常量 3.10 按位操作符 3.11 移位操作符 3.12 三元操作符 if-else 3.13 字符串操作符 + 和 += 3.14 使用操作符时常犯的错误 3.15 类型转换操作符 3.16 Java没有sizeof 3.17 操作符小结

第三章面向对象编程思想

""" 编码规范: 类名首字母应以大写字母开头 类的成员/属性: 成员属性 实例化对象的属性: self.name=name 可以被访问,也可以在类的外部被修改 私有属性 实例化对象的私有属性: self.__age=age 属性名前加两下划线 外部无法被访问, 也不能被修改,只能内部访问和修改 想要在外部访问只能自定义一个方法了 强制访问 私有属性: p._People__age 对象名._类名__私有属性 公共属性: 类的属性,也叫静态属性,他是在类的内部定义的 clas

Java编程思想(第4版)pdf高清版免费下载

下载地址:网盘下载 备用地址:网盘下载 内容简介编辑本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形.从Java的基础语法到最高级特性(深入的面向对象概念.多线程.自动项目构建.单元测试和调试等),本书都能逐步指导你轻松掌握.[1] 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作.本书的作者拥有多年教学经验,对C.C++以及Java语言都有独到.深入的见解,以通俗易懂及小而直接的示例解释了一

Java编程思想【Thinking in java】

Java编程思想[Thinking in java]目录:第1章 对象导论1.1抽象过程1.2每个对象都有一个接口1.3每个对象都提供服务1.4被隐藏的具体实现1.5复用具体实现1.6继承1.6.1“是一个”(is-a)与“像是一个”(is-like-a)关系1.7伴随多态的可互换对象1.8单根继承结构1.9容器1.9.1参数化类型(范型)1.10对象的创建和生命周期1.11异常处理:处理错误1.12并发编程1.13Java与Internet1.13.1Web是什么1.13.2客户端编程1.13