0

私はこのバグを抱えており、数日間苦労しています。基本的にはInstagramのようなプロフィールを作りたいです。

Instagramユーザープロフィール

上部の「タブバー」の最初の2つのボタンのいずれかをクリックすると、コンテンツが下部に表示されます。画面の上部は同じままです。私はいくつかのUIViewControllersといくつかのUITableViewControllerを持っています。ビューコントローラを表示するためのボタンが5つあります。私の問題は、tableviewcontrollerを表示できることですが、たとえば、2番目を表示してから最初に戻ろうとすると、最後に表示したものに固定されてしまいます。これが十分に明確であることを願っています。ビューコントローラを表示するためのコードは次のとおりです。

- (IBAction)wallButtonPressed:(id)sender
{
    if(!_userWallViewController) {
        self.userWallViewController = [[WallViewController alloc] init];
        self.userWallViewController.activityFeedTableView.bounds = self.containerView.bounds;
    }

    [self.currentViewController.view removeFromSuperview];
    [self.currentViewController removeFromParentViewController];
    self.currentViewController = self.userWallViewController;
    self.userWallViewController.searchURLString = [NSString stringWithFormat:@"/event/user/%@", self.userID];
    self.userWallViewController.containerView = self.containerView;
    [self.containerView addSubview:self.userWallViewController.view];
    [self addChildViewController:self.userWallViewController];
    [self.userWallViewController.view setNeedsDisplay];
    [self.userWallViewController viewWillAppear:YES];
}

containerViewは、画面の下部全体を占めるU​​IViewです。currentViewControllerはプレースホルダーviewControllerであり、userWallViewControllerはUITableViewControllerです。

どんな種類の助けも大歓迎です。これは実際のバグの状況です。ありがとう

4

1 に答える 1

0

@Matt の提案が役に立ちました。

[self.fanOfViewController.containerView addSubview:self.fanOfViewController.userSimpleTableView];

[self.currentViewController.view removeFromSuperview];
[self.currentViewController removeFromParentViewController];

self.fanOfViewController.containerView = self.containerView;
[self addChildViewController:self.fanOfViewController];
[self.containerView addSubview:self.fanOfViewController.view];

//CLEAN UP THE CONTAINER VIEW BY REMOVING THE PREVIOUS ADDED TABLE VIEWS
[self.userWallViewController.activityFeedTableView removeFromSuperview];
[self.userFansViewController.userSimpleTableView removeFromSuperview];

対応するボタンを押してView Controllerから新しいtableViewを追加するたびに、現在のView Containerにスタックしていました。対応するviewControllerを階層から削除してから再度追加しようとしたときに、viewDidLoadメソッドが呼び出されませんでした(最初に呼び出されただけです)。これは、tableView を削除するロジックがあった場所です。

ボタンが押されたときにも追加し、「スタック」から他のtableViewを削除します。最善の方法ではないかもしれませんが、最適化する予定です。これが十分に明確であり、この問題に遭遇した人の助けになることを願っています.

于 2012-10-28T07:36:27.400 に答える