好的,如果您在理解标题时遇到问题,这就是问题。
我在这里使用this库,它由IIViewDeckController
表示。
我用简单的左居中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
只是UIViewController
的子类。最后一行从窗口中删除当前的rootViewController
并添加IIViewDeckController
。现在在
FTPhoneHomeViewController
中,使用UIViewController
方法添加另一个addChildViewController
: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
中。当我从窗口中将
IIViewDeckController
用作rootViewController
时,未调用viewWillAppear
中的FTTileViewController
事件。但这在FTPhoneHomeViewController
中称为!现在,当我不使用IIViewDeckController
而只是将FTPhoneHomeViewController
添加为窗口的rootViewController
时,我的FTTileViewController
确实会得到viewWillAppear
事件...也许这是
IIViewDeckController
的错误,我也应该将其发布在这里。但是我看不到我在做什么错。有人对此有任何想法吗?如果有人可以检查我关于
UIViewControllers
的一般假设:将
childViewControllers
添加到另一个UIViewController
并不是将视图循环方法(例如viewWillAppear
)传递到另一个UIViewController's
视图的必要条件。当您使用UIViewController's
方法添加另一个addSubview
视图时,将传递这些事件。但是,例如,您使用addChildViewController
方法来获取旋转事件并通过应用程序维护viewController's
层次结构。 最佳答案
可以回答我自己的问题:
在IIViewDeckController
中,您可以调整一些方法:
- (BOOL)shouldAutomaticallyForwardRotationMethods {
return YES;
}
- (BOOL)shouldAutomaticallyForwardAppearanceMethods {
return YES;
}
- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {
return YES;
}
从所有人都返回YES,它应该可以工作。
如果
IIViewDeckController
上的该视图包含项没有属性,则添加它可能很好吗?关于ios - 从未调用IIViewDeckController的中心viewController出现在childViewController上的viewWillApp,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18397636/