<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    We often need to add social features in our iPhone apps. Adding features like commenting, shouts etc are very common. These type of data are usually shown
    with pagination with buttons like next, previous etc.

    To reduce the overhead of creating this functionality again and again we may encapsulate the common functions in a class. So did I for my applications.

    I have created a class named PaginationAgent. After loading records it calls related methods of its delegate which should implement protocol PaginationAgentDeleagte.

    Additionally two php files are needed. One to return the total number of records and another one is to fetch the page data. They must be named respectively as

    • get_total_number_of_records.php
    • get_records.php

    Lets see an example.

    First, I have created a simple view based project “Pagination” and designed the view as u see:

    Create a similar view using Interface Builder

    1. Added a button to show previous page data

    2. One button to reload the data.

    3. Another to show data on next page.

    4. Added a UITable which will show the result.

    In PaginationViewController.h, imported PaginationAgent.h file and declared:

    1. PaginationAgent* objPagination;  

    Now lets see how to initialize it. In the viewDidLoad method I initialized this like this:

    1. objPagination = [[PaginationAgent alloc] init];  
    2. objPagination.delegate = self;  
    3. objPagination.remoteApiBasePath = @"http://your.server/path/to/folder";  

    remoteApiBasePath must be set to the location where the server side php files are placed.
    No trailing slash.

    PaginationAgentDelegate protocol declares the following functions to be overridden by the Delegate:

    1. /** 
    2. * This method is called when the busystate is changed. 
    3. * You can do something like disable/enable the buttons, grayout etc 
    4. * based on the isBusy value. 
    5. */  
    6. -(void)paginationAgent:(PaginationAgent*)agent updateBusyMode:(BOOL)isBusy;  
    7.   
    8. /** 
    9. * Called when total data count is received if shouldReloadAtFirstPage is set NO. 
    10. */  
    11. -(void)paginationAgent:(PaginationAgent*)agent totalDataCountReceived:(int)dataCount;  
    12.   
    13. /** 
    14. * Called when page data is loaded. You may set your table dataSource here and realod 
    15. * reload the table. 
    16. */  
    17. -(void)paginationAgent:(PaginationAgent*)agent pageDataReceived:(NSArray*)data;  
    18.   
    19. /** 
    20. * Called if server sends malformed data 
    21. */  
    22. -(void)paginationAgent:(PaginationAgent*)agent onPaginationServerError:(NSString*)message;  
    23.   
    24. /** 
    25. * Called if connection failed. It may occur due to poor or no internet connectivity 
    26. */  
    27. -(void)paginationAgent:(PaginationAgent*)agent onPaginationConnectionError:(NSString*)message;  

    The php files must return data in json format and must use the format as used:

    1. 1,'message'=>'Success','data'=>33);  
    2.     echo json_encode($data);  
    3.   
    4. ?>  
    1. ...  
    2. ...  
    3. $data = array('success'=>1,'message'=>'Got data','data'=>$rows);  
    4.   
    5. echo json_encode($data);  

    See the attached project for details. The php files are inside the folder “PHPFILES”.

    Pagination.zip

    posted on 2010-10-08 21:30 seal 閱讀(276) 評論(0)  編輯  收藏 所屬分類: iPhone
    主站蜘蛛池模板: 精品国产日韩亚洲一区| h视频在线观看免费完整版| 国产精品无码免费专区午夜| 成全视频在线观看免费| 无码免费午夜福利片在线| 中文字幕亚洲一区二区va在线| 亚洲色图视频在线观看| 人妻免费久久久久久久了| 天天影视色香欲综合免费| 久久亚洲AV成人无码国产| 国产亚洲视频在线播放大全| 91香蕉国产线在线观看免费| 亚洲国产成人久久综合区| 亚洲激情视频网站| 青柠影视在线观看免费高清| 精品国产综合成人亚洲区| 亚洲成人在线免费观看| 国产精品无码免费专区午夜| 亚洲日韩一页精品发布| 一级毛片免费视频网站| 免费看又爽又黄禁片视频1000| 亚洲小视频在线观看| 成年免费a级毛片免费看无码| 四虎影库久免费视频| 亚洲字幕AV一区二区三区四区| 亚洲欧洲免费视频| 亚洲精品你懂的在线观看| 小草在线看片免费人成视久网| 亚洲国产成+人+综合| 一区二区三区四区免费视频| 亚洲国产精品线观看不卡| 四虎影视在线永久免费观看| 成av免费大片黄在线观看| 亚洲天堂中文字幕在线观看| 国产a不卡片精品免费观看| 91精品成人免费国产| 亚洲色中文字幕无码AV| 日韩精品久久久久久免费| 亚洲日本在线看片| 免费看AV毛片一区二区三区| 国产免费伦精品一区二区三区|