有一个类是完全成熟的UIViewController,当该页面加载时,它的工作非常好。

我想更改其工作方式,而不是从当前的viewcontroller上推送新的ViewController,而是只在通常启动新UIViewController的当前屏幕上的UIView中显示此UIViewController。

这很难解释。

UIVC_A将UIVC_B推送到NavController上。

而不是将UIVC_B推送到NavController上。

我宁愿在UIVC_A中创建一个UIView并让UIVC_B作为UIVC_A的子视图出现在其中。

我需要做什么/更改才能使这种事情起作用。

我试过了

CVC *cv = [[CVC alloc] init];
UIView * aView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 600, 600)];
aView.backgroundColor = [UIColor blueColor];
[aView addSubview:cv.view];
[self.view addSubview:aView];


但这没有用。

CVC是一个UIViewController。

谢谢,
-码

最佳答案

它没有用,因为CVC的xib文件尚未归档。它的视图层次结构在加载后即可使用(回调为-viewDidLoad)。

您需要做的是以编程方式加载nib并使用其内容:

NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CVC" owner:nil options:nil]; // will return the whole view tree with the CVC's view as it's 0 object
UIView *cvcView = [topLevelObjects objectAtIndex:0];


并按照您的观点进行操作。

10-06 03:23