<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評(píng)論 :: 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 閱讀(275) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): iPhone
    主站蜘蛛池模板: 91成人免费福利网站在线| 欧美激情综合亚洲一二区| 国产亚洲精品免费视频播放| 国产一区二区三区无码免费| 亚洲av综合av一区二区三区| 国产美女无遮挡免费网站| 亚洲欧美国产欧美色欲| 卡1卡2卡3卡4卡5免费视频| 亚洲国产日韩综合久久精品| 在线看片v免费观看视频777| 亚洲一级片在线观看| 精品久久久久成人码免费动漫| 亚洲人成黄网在线观看| 在线观看免费人成视频色9| 亚洲av无码专区首页| 免费观看亚洲人成网站| 成人免费网站视频www| 好看的亚洲黄色经典| 免费在线看污视频| 亚洲视频国产视频| 猫咪社区免费资源在线观看| 亚洲综合激情五月丁香六月| 全部免费毛片免费播放| 久久毛片免费看一区二区三区| 久热综合在线亚洲精品| 青青视频观看免费99| 日韩欧美亚洲中文乱码| 在线亚洲97se亚洲综合在线| 无码人妻丰满熟妇区免费| 亚洲av产在线精品亚洲第一站| 暖暖在线日本免费中文| 久久嫩草影院免费看夜色| 91亚洲精品第一综合不卡播放| 免费a级毛片高清视频不卡| 日韩毛片在线免费观看| 国产精品久久久亚洲| 成年男女免费视频网站| 精品一区二区三区无码免费视频| 亚洲av成人无码久久精品| 中文字幕无码免费久久99| 免费激情网站国产高清第一页 |