ios - How to access properties from view after it loaded -


storyboard:

storyboard

constraints:

enter image description here

result:

enter image description here

i'm trying understand autolayout , how can use inside container.

i got default viewcontroller made me when opened storyboard. put view container inside there. , added loose (not connected anything) viewcontroller. want content inside new viewcontroller put in container.

so added viewcontroller put inside container consists of 3 labels using autolayout.

clicking on black bar container view controller in storyboard go identity inspector , set custom class "containerviewcontroller". set storyboard id "childcontroller" loose view controller.

then override viewdidload in containerviewcontroller.m:

- (void)viewdidload {     [super viewdidload];      uiviewcontroller *child = [self.storyboard instantiateviewcontrollerwithidentifier:@"childcontroller"];     [self addchildviewcontroller:child];     [self.view addsubview:child.view];  } 

why won't constraints autolayout work when put in container? hoped would, take further uipageviewcontroller.

edit:

so seems frame size. need before adding sub view:

child.view.frame = cgrectmake(0, 0, 265, 370); 

now created outlet container in viewcontroller.h.

@property (weak, nonatomic) iboutlet uiview *container; 

but.. containerviewcontroller, how can ask presenting view controller (viewcontroller) of property when it's not set yet?

viewcontroller *parent = (viewcontroller*)self.presentingviewcontroller; uiview *container = parent.container;  nslog(@"parentview container width: %f, height: %f", container.frame.size.width, container.frame.size.height); 

it gave me 0 width , height, because view hasn't loaded yet. later on when loads, actual values..

nslog(@"view controller container. width: %f, height: %f", self.container.frame.size.width, self.container.frame.size.height); 

the question: how can access properties of presentingviewcontroller when ready/loaded?

when adding child view controller should set view frame

uiviewcontroller *child = [self.storyboard instantiateviewcontrollerwithidentifier:@"childcontroller"]; [self addchildviewcontroller:child]; [self.view addsubview:child.view];  //set view frame child.view.frame = self.view.bounds; 

so child view controller resize view frame , layout contraints homework ;)

edit

put code in -(void)viewdidlayoutsubviews this:

-(void)viewdidlayoutsubviews{     [super viewdidlayoutsubviews];     uiviewcontroller *child = [self.storyboard instantiateviewcontrollerwithidentifier:@"childcontroller"];     [self addchildviewcontroller:child];     [self.view addsubview:child.view];      //set view frame     child.view.frame = self.view.bounds; } 

Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

How to get multiresult with multicondition in Sql Server -