Search code examples
iosobjective-cuitableviewuisplitviewcontrollerchildviewcontroller

how do i unload view controllers ? or a least make it run viewDidAppear each time?


i want to "unload" view controllers so they get read each time a user click on them in the uitableview it's a uisplitviewcontroller with childviewcontrollers how is this possible ?

-(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;
}
}

so far i tried this in the ShowChildViewController

[content dismissViewControllerAnimated:YES completion:nil];

but then it shows nothing


Solution

  • -(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;
    }
    }
    

    This works!