0

データソースまたはデリゲートメソッドの実行に問題があります。

MainViewControllerでページングビューを使用していますが、ページは問題なく表示されますが、テーブルビューが空白で、データソースメソッドがある場所にブレークポイントを設定すると、呼び出されません。

ビューをロードするMainViewController

 if ((NSNull *)controller2 == [NSNull null])
{
    if(page == 2)
    {
        controller2 = [[requestDetailThreeViewController alloc] initWithRequestNumber:[request objectForKey:@"RequestID"]];
        [viewControllers replaceObjectAtIndex:page withObject:controller2];
        CGRect frame = scrollView.frame;
        frame.origin.x = frame.size.width * 2;
        frame.origin.y = 0;
        controller2.view.frame = frame;
        [scrollView addSubview:controller2.view];
    }

}

TableViewController(requestDetailThreeViewController)

    - (void)viewDidLoad
 {
   [super viewDidLoad];



[History fullHistoryWithBlock:^(NSArray *netMessages, NSError *error) {
    if (error) {

        [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:   [error localizedDescription] delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", nil), nil] show];
    } else {
        NSLog(@"Number of Historical Entries: %d", [netMessages count]);

        self.historyFromNet = [NSMutableArray arrayWithArray:netMessages];
    }

} forID:requestNum];

}


   - (id) initWithRequestNumber:(NSString *)requestID
 {

     if (self = [super initWithNibName:@"View" bundle:nil])
  {
      self.requestNum = requestID;
  }
  return self;

}

(コードの2番目のブロックの間隔についてお詫びします。コードモードにするのに苦労します。これらの2つのメソッドは実行されますが、クラスにあるデータソースメソッドは実行されません。

XIBファイルでは、xibの所有者をrequestDetailThreeViewControllerに設定しています。tableViewはdatasource/delegateおよびviewに設定されています

ViewDidLoadでテーブルビューを非表示に設定すると、テーブルビューは表示されなくなります。

テーブルにデータを入力するためのメソッドを実行するように取得できません。

アップデート:

いくつかの詳細情報-

View XIBにはTableViewのみが含まれ、コントローラーは含まれていません。

ありがとう!アラン

4

2 に答える 2

0

子ビュー コントローラーを追加しているので、UIViewController 包含メソッドを使用する必要があります。

何かのようなもの:

    controller2 = [[requestDetailThreeViewController alloc] initWithRequestNumber:[request objectForKey:@"RequestID"]];
    [viewControllers replaceObjectAtIndex:page withObject:controller2];
    [self addChildViewController:controller2];
    CGRect frame = scrollView.frame;
    frame.origin.x = frame.size.width * 2;
    frame.origin.y = 0;
    controller2.view.frame = frame;
    [scrollView addSubview:controller2.view];
    [controller didMoveToParentViewController:self];
}

また、スクロール ビューを介して手動で行うのではなく、ページング ビューに UIPageViewController を使用することを検討してください。

于 2012-09-26T00:01:16.450 に答える
0

あなたはそれを設定しようとすることが できself.tableView.delegate = selfます -(void)viewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tableView.delegate = self;
}
于 2012-09-26T00:14:43.053 に答える