0

好的,如果您在理解标题时遇到问题,这就是问题所在。我在这里使用这个库,它由IIViewDeckController.

我用简单的 left 和 center 初始化它UIViewControllers

FTPhoneHomeViewController *home = [[FTPhoneHomeViewController alloc] init];
FTPhoneSideViewController *side = [[FTPhoneSideViewController alloc] init];

IIViewDeckController *vdc = [[IIViewDeckController alloc] initWithCenterViewController:home leftViewController:side];
[self.delegate changeRootViewController:vdc];

FTPhoneHomeViewController并且FTPhoneSideViewController只是 的子类UIViewControllerrootViewController最后一行从窗口中删除当前并添加IIViewDeckController.

现在在我添加FTPhoneHomeViewController另一个方法:UIViewControlleraddChildViewController

FTTileViewController *tileViewController = [[FTTileViewController alloc] initWithFrame:CGRectMake(5.0, 50.0, 469.0, 310) tileData:[FTTileFaker prepareTileData] defaultTileConfig:[FTTileFaker prepareTileConfigs][0] andTileConfigs:[FTTileFaker prepareTileConfigs]];
tileViewController.tileSpacing = 9.0;
[self addChildViewController:tileViewController];
[self.view addSubview:tileViewController.view];
[tileViewController didMoveToParentViewController:self];

我这样做是因为它FTTileViewController管理一堆瓦片,从架构的角度来看,这个逻辑最好包含在它自己的单独的UIViewController.

当我从窗口使用IIViewDeckControlleras a时,不会调用我在 中的事件。但它被称为!现在,当我不使用并仅添加窗口时,我确实得到了事件......rootViewControllerviewWillAppearFTTileViewControllerFTPhoneHomeViewControllerIIViewDeckControllerFTPhoneHomeViewControllerrootViewControllerFTTileViewControllerviewWillAppear

也许这是一个错误,IIViewDeckController我也应该在那里发布。但我看不出我在这里做错了什么。有人对此有任何想法吗?

如果有人可以检查我的一般假设UIViewControllers

添加childViewControllers到另一个UIViewController不是将视图循环方法(如viewWillAppear)传递到另一个UIViewController's视图的要求。当您使用该方法添加另一个UIViewController's视图时,将传递这些事件。addSubview但是,例如,您使用这些addChildViewController方法来获取旋转事件并viewController's通过您的应用程序维护层次结构。

4

1 回答 1

2

好的,我自己的问题:

IIViewDeckController一些方法可以调整:

- (BOOL)shouldAutomaticallyForwardRotationMethods {
    return YES;
}

- (BOOL)shouldAutomaticallyForwardAppearanceMethods {
    return YES;
}

- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {
    return YES;
}

从他们所有人那里返回YES,它应该可以工作。如果 上没有此视图包含的属性,IIViewDeckController是否可以添加它?

于 2013-08-23T08:26:40.113 回答