做苹果开发有一个多月了,还是不习惯MaC系统,人家都说MAC可以提供码农的开发效率,还是没感觉出来。看来大部分AIr笔记本上 装的是window7 系统。。。。。

我的开发系统:10.7 +xcode 4.3(注:xcode4.2 之前 区别很大),xcode 4.3 的资料也相对较少,对想入门的菜鸟们,头痛的!同时IOS5  引入了 Storyboard ,给开发多了一个选择,有时候多一个选择未必是好事,尤其对全局不是很清楚的条件下。接下来我 一三种方式来实现一个带有搜索的视图页面,如图1 所示

图1

方法一 基于strongboard 形式

打开 xcode--->file---->new project ---->application ---->single project, 具体步骤如1-1 1-2   1-3 所示

图1-1

图1-2

图1-3

从工具箱中拖出,search bar 和table view 如图1 布局,这时候run下,可以看到图1的界面已有,接下来是实现它的搜索功能:

把Editor 视图 切换至 show the  assistant Editor ,view视图 换到utilities。选择刚才的SearchBar ,右键,在reference outlet  拖出一直线到,Bidviewcontroller 建立Searchbar 与视图控制器关联(如图1-4所示);对table View 进行同样操作。

你会发现,ide 会在我们BidViewControler.h 里增加了

@property (strong, nonatomic) IBOutlet UISearchBar *searchBar;
@property (strong, nonatomic) IBOutlet UITableView *table

在BidViewControler.m 增加了

@synthesize searchBar;
@synthesize table;

由于我们要对seachbar 和tableview的操作,所以必须让BidViewControler 实现

<UITableViewDataSource,UITableViewDelegate,UISearchBarDelegate>三个协议,看三个协议的文档,UITableViewDataSource要求必须实现

– tableView:numberOfRowsInSection:  required method
– tableView:cellForRowAtIndexPath:  required method 
实现这两个。我们实现了
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    
    if(allTableData == nil)
        return 0;
    else {
        
        return [self.allTableData count];
    }
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSUInteger section  = [indexPath section];
    NSUInteger row = [indexPath row];
    
    static NSString *sectionsTableIdentifier = @"SectionsTableIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:sectionsTableIdentifier];
    if(cell == nil){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:sectionsTableIdentifier] ;
    }
    cell.textLabel.text = [allTableData  objectAtIndex:row];
    return cell;
    
}

#pragma mark -Table view Delegate Methods
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [searchBar resignFirstResponder];
    return indexPath;
}

#pragma mark- Search Bar Delegate Methods
-(void) searchBarSearchButtonClicked:(UISearchBar *)searchBar{
    allTableData = [[NSMutableArray alloc] initWithObjects:
                    @"Steak",@"Rare", 
                    @"Steak" ,@"Medium",
                    nil ];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"first" message:@"first by segment" delegate:self cancelButtonTitle:@"are you sure" otherButtonTitles: nil];
    [alert show];
}

再次运行发现,点击search 还是没反应,为啥子尼?苹果为了解耦 ,大部分都以代理模式实现,点击dock  中的searchbar  ,切换到connection inspector 你会发现,searchbar  deleagte 处于无连接转状态,赶紧拉一条直线到view controler 那里,如图1-5所示

在次运行代码,并点search 会发现,会跳出一个alert 对话框,说明我么已经搞定searchbar了,接下来的任务是实现,对tableview 的操作

我们在-(void) searchBarSearchButtonClicked:(UISearchBar *)searchBar方法中 增加[table reloaddata],运行代码后 发现 talbeview 还会没数据,为什么?? 对头。。。跟searchbar 一样,同样也要设置delegate 和datasource, 把他们连接viewcontrole(如图1-6所示)r,再次运行,哈哈,可以了。。。

法(二),大家可以参考beginning IOs5 development 8.5 节

法(三)待续

iphone开发(一)相关推荐

  1. iphone开发UITable内嵌不同风格Table

    在iphone开发中使用Table的时候,由于Table有的风格UITableViewStylePlain或者UITableViewStyleGrouped一旦指定,便无法修改.但是在使用的过程中,总 ...

  2. 菜鸟学iPhone开发-计算器实例(实现篇)

    上一节我们分析了一个简单的计算器应用程序的功能需求和一些注意事项.现在,我们可以通过Xcode新建一个项目进行编码了. 选择View-BasedApplication项目模板,命名为Calculato ...

  3. iPhone开发环境搭建全过程 iPhone手机开发内容,中文手册

    http://3g.edu.csdn.net/kecheng/iphone.html  iPhone手机开发内容 http://www.docin.com/p-34874880.html# iPhon ...

  4. iphone开发 NSURL中fileURLWithPath和URLWithString的区别

    2019独角兽企业重金招聘Python工程师标准>>> iphone开发 NSURL中fileURLWithPath和URLWithString的区别: 1.我做了如下实验:(摘抄) ...

  5. iPhone开发四剑客之《iPhone开发秘籍》

    媒体评论 "难以想象,竟然有人还没有读Erica Sadun的书就开始从事iPhone商业开发--本书将使你成为AppStore上用户热捧的那种五星级开发者." -- InfoWo ...

  6. iPhone开发四剑客之《Objective-C基础教程》

    iPhone 开发四剑客之<Objective-C 基础教程> Objective-C 语言是 C 语言的一个扩展集,许多(可能是大多数)具备 Mac OS X 外观的应用程序都是使用该语 ...

  7. 《iPhone开发秘籍》带你深入iPhone开发秘境

    < iPhone 开发秘籍> 很少有平台能够与 iPhone 独特的开发技术相提并论. iPhone 将基于 OS X 的移动计算与创新的多点触摸屏幕.位置感知.机载加速计等结合在一起.苹 ...

  8. iPhone开发:抢先拥抱软件开发的未来

    iPhone开发:抢先拥抱软件开发的未来 --"CocoaChina iPhone开发技术交流会"后记 有朋友说:"苹果的产品不只是产品,也不只是一种文化,更多的是一种信 ...

  9. iPhone开发:09年开发领域的最热看点!

    iPhone开发:09年开发领域的最热看点 --<iPhone开发基础教程> 媒体评论 "Dave Mark一直是Mac编程图书作者中的佼佼者,而他现在又无可争议地成为了iPho ...

  10. iPhone开发中现文件的增加 删除和查询

    iPhone开发中,我们常常用到一些对于文件的增加,删除和查询,这些基本的功能对于开发者来说非常的重要,而且非常实用.本文给大家介绍一下如何实现这几个具体的功能. //创建文件 -(void)Crea ...

最新文章

  1. Thymeleaf 入门
  2. 微生物环境因子分析(RDA/db-RDA)-ggvegan包
  3. 2020未来科学大奖公布,砒霜治疗白血病发现者张亭栋、王振义获生命科学奖,最年长者96岁...
  4. 分类算法:决策树(C4.5)
  5. SqlServer的NEWID()函数巧用,生成GUID作为唯一标识用
  6. linux内核函数open源码,open()在Linux内核的实现(1)-基本实现
  7. 入门RabbitMQ核心概念
  8. 教育部:“改薄”工程实施中预防拖欠农民工工资
  9. 5 加盐_软化水设备怎么加盐
  10. 【优化算法】阿基米德优化算法(AOA)【含Matlab源码 1447期】
  11. AT24C04、AT24C08、AT24C16系列EEPROM芯片单片机读写驱动程序
  12. The database returned no natively generated identity value
  13. 计算机在职双证博士的学校,双证在职博士招生院校有哪些?
  14. python基础学习-斐波那契数列实现
  15. matlab抽样仿真混叠图,数字信号处理及MATLAB仿真__前言
  16. OpenCV-灰度图蒙版GrayMask
  17. 搜索引擎的概念鄂州_第一节 搜索引擎的概念
  18. 小微企业名录的作用以及查询方法
  19. 量子力学二态系统Bloch球练习题
  20. linux进命令行模式vi,命令行中的 vi 模式

热门文章

  1. 利用Java通过阿里云对图片进行内容审核
  2. NC开发笔记——NC63开发方法总结
  3. 针对某软件系统的测试论文,计算机软件论文:软件可靠性及其测试分析
  4. php读git历史,Git 查看提交历史
  5. Ubuntu新装系统必装软件
  6. 这才是没有文化的表现
  7. 京东css3动画全屏海报_京东店铺装修安装全屏CSS3动态缩放效果海报,活动海报上添加透明素材自动缩放 ......
  8. 还在为仓库杂乱发愁?教你ABC仓库管理分类法!
  9. 苹果手机4g网速慢怎么办_安卓手机12G运存,打不过苹果4G?原因在这
  10. 银行卡支付的背后原理你了解吗?