0

私は非常に奇妙な問題を抱えています。上半分が UITableView で、下半分がページングが有効な UIScrollView であるというビューがあります (合計 2 ページ) したがって、基本的に、TableView のセルの 1 つをタップすると、データが下のビューに入力されます。UITableView に入力するリクエストを Web から取得しています。

アプリケーションをロードすると、すべてが正常に機能し、更新が正常に機能します。何らかの理由で、テーブルビューからセルを削除してリロードを実行すると、スクロールビューのページングが応答しなくなります...何が原因なのかわかりません。データは引き続きビューに取り込まれますが、他の情報のビューにページングすることはできません。

更新を実行するときにどのコードを投稿すればよいかわかりません。これを行うだけです:

[Request allOpenRequestsWithBlock:^(NSArray *requestsFromWeb, NSError *error) {
    if (error) {

        [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:[error localizedDescription] delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", nil), nil] show];
         [self performSelector:@selector(stopLoading) withObject:nil afterDelay:1.0];
    } else {
        NSLog(@"Number of Open Requests: %d", [requestsFromWeb count]);
        [self.openRequestFromNet removeAllObjects];
        self.openRequestFromNet = [NSMutableArray arrayWithArray:requestsFromWeb];
        [self.tableView reloadData];
        //self.openRequestLoaded = true;


         [self performSelector:@selector(stopLoading) withObject:nil afterDelay:1.0];
    }

} forEID: idNumberFromLogin];

openRequests の数が openRequests の最初の数と異なる場合、ScrollView はフリーズしますが、スクロールビューはデータで更新され、ページングだけがなくなります。

理由がわからない!?

UITableViewController クラスが UIScrollView に影響を与えるのは、NSNotification を送信して ScrollView 内にビューを設定するときだけです。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
     MyOpenRequestCell *cell = [[MyOpenRequestCell alloc] init];
    cell = (MyOpenRequestCell *)[self.tableView cellForRowAtIndexPath:indexPath];
    [[NSNotificationCenter defaultCenter] postNotificationName:kMyDidSelectNotification object:[cell.requestID text]];
}

おそらくポインターの問題であると感じていますか?しかし、実際には、内部の UIScrollView/Views で直接使用されていない NSString のみを送信しています。そのリクエスト番号のデータを取得するために別の呼び出しを行うために使用されます。

ありがとう!

4

0 に答える 0