0

我想“卸载”视图控制器,以便每次用户在 uitableview 中单击它们时读取它们,这是一个带有 childviewcontrollers 的 uisplitviewcontroller 这怎么可能?

-(void)Graviditeten:(int)viewId {
UIViewController *viewController;
switch (viewId) {
    case 0:
        viewController = self.jegKomTil;
        break;
    case 1:
        viewController = self.scannet1;
        break;
    case 2:
        viewController = self.ugeForUge;
        break;
    case 3:
        viewController = self.opfoeselIMave;
        break;
    case 4:
        viewController = self.specielleMinderGravid;
        break;
    case 5:
        viewController = self.nakkefold;
        break;
    case 6:
        viewController = self.mdScan;
        break;
    case 7:
        viewController = self.madMorHave;
        break;
    case 8:
        viewController = self.tingFar;
        break;
}
[self showChildViewController:viewController];
}


-(void)showChildViewController:(UIViewController*)content {
if(topController != content) {
    content.view.frame = [self.view frame];
    [self.view addSubview:content.view];
    [content dismissViewControllerAnimated:YES completion:nil];
    [content didMoveToParentViewController:self];
    [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

    topController = content;
}
}

到目前为止,我在ShowChildViewController

[content dismissViewControllerAnimated:YES completion:nil];

但随后它什么也没显示

4

2 回答 2

0

听起来您并不是真的想卸载 vc 的视图,而是在它即将呈现时刷新。在显示 vc 之前UISplitViewControllerDelegate收到通知。splitViewController:willShowViewController:invalidatingBarButtonItem显示的 vc 是一个参数。请参阅此处的文档。

于 2014-04-04T15:56:13.807 回答
0
-(void)showChildViewController:(UIViewController*)content {
if(topController != content) {
    content.view.frame = [self.view frame];
    [content.view removeFromSuperview];
    [self.view addSubview:content.view];
    [content.view setNeedsDisplay];
    [content didMoveToParentViewController:self];

    topController = content;
}
}

这行得通!

于 2014-04-05T03:49:16.923 回答