0

Iphone アプリを開発中です。私はすべての解析にNSObjectfile を使用しており、プロトコル メソッドを使用して結果 (通常は) をに渡します。webservicesAsynchronouslywebserviceNSMutableArrayViewController

次に、結果を に表示しましたtableviewNSObjectしかし、私の問題は、プロトコルメソッドを呼び出した後、コントローラーがファイルに戻り、テーブルがリロードされないため、テーブルがリロードされないことです。

-(void)tableReload私はまた、2つのステートメントを言う方法をとろうとしました

[tblview reloadData];
[spinner stopAnimating];

プロトコルで。

tableReloadプロトコルの最初のメソッドが呼び出された後にメソッドを呼び出しています。

これが私のコードです:

-(void)requestFinished:(ASIHTTPRequest *)request
{

//My parsed data is stored in array
id<EventRepository>aReposit;

    aReposit=(id<EventRepository>)eventLVC;
    [aReposit successResponse:array];
    [aReposit tableReload];

}

-(NSString *)successResponse:(NSMutableArray *)sresponse

{

//This is my first delegate method in protocol
//storing sresponse array value into another array here and using this array in tableview methods

}

-(void)tableReload

{

    NSLog(@"This is TableReload Delegate Method in ListViewController");
    self.tblView.delegate=self;
    self.tblView.dataSource=self;
    [self.tblView reloadData];
    [self.spinner stopAnimating];

}

上記の 2 つのメソッドを呼び出した後、コントロールはオブジェクト ファイルに戻り、アクティビティ インジケーターは停止せず、テーブルはリロードされません。

この問題を解決するためのアイデアや提案をどなたでもお寄せください。

ありがとう

4

2 に答える 2

0

まず -> tableReload メソッドが呼び出されていますか?

もし、そうなら、

TableViewDataについて - テーブルに表示しているデータを確認してください。その内容が変更されたかどうか。NSLog を使用してみてください。

Spinner について - IBOutlet 接続は正しく接続されていますか。

すべてがうまくいっている場合は、メインスレッドで tableReload を呼び出してみてください。

于 2012-11-06T09:36:39.693 に答える
0

デリゲート関数でスピナーを停止します。

 -(void)tableReload
    {
        [self.spinner startAnimating];
        self.tblView.delegate=self;
        self.tblView.dataSource=self;
        [self.tblView reloadData];
    }


 -(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){
            //table view loaded succesfully
            [self.spinner stopAnimating];
        }
    }
于 2012-11-06T09:51:02.343 に答える