ios5 - Handle UIButton in Child View Controller of Container View Controller -



ios5 - Handle UIButton in Child View Controller of Container View Controller -

i working on creating custom container viewcontroller class , able create 5 sub viewcontrollers , able move 1 kid view controller other kid using next api:

transitionfromviewcontroller:fromviewcontroller toviewcontroller:toviewcontroller duration:1.0 options:0 animations:^{ } completion:^(bool finished) { }];

child view controllers occupying part of parent view controller. each time when user swipe making previous controller goes off , nowadays controller comes on displayable area.

now have buttons on kid viewcontrollers , when click on them not getting events or trigger action method of kid view controller. parent view controller getting callbacks buttons childview getting displayed. please help asap. adding code snippet below (though little bigger, help analyze if doing mistake). urgent request.. plz plz help me..

parent viewcontroller:

- (void) handleswipegestureleft:(uiswipegesturerecognizer *)gesture { if (showpopupvalue) { return; } nsinteger index = [arrayofchildvcs indexofobject:selectedviewcontroller]; index = min(index+1, [arrayofchildvcs count]-1); uiviewcontroller *newsubviewcontroller = [arrayofchildvcs objectatindex:index]; endframe.origin.x = -1024; startofnewvcframe.origin.x = 1024; [self transitionfromviewcontroller:selectedviewcontroller toviewcontroller:newsubviewcontroller]; selectedviewcontroller = newsubviewcontroller; } - (void) handleswipegestureright:(uiswipegesturerecognizer *)gesture { if (showpopupvalue) { return; } nsinteger index = [arrayofchildvcs indexofobject:selectedviewcontroller]; index = max(index-1, 0); uiviewcontroller *newsubviewcontroller = [arrayofchildvcs objectatindex:index]; endframe.origin.x = 1024; startofnewvcframe.origin.x = -1024; [self transitionfromviewcontroller:selectedviewcontroller toviewcontroller:newsubviewcontroller]; selectedviewcontroller = newsubviewcontroller; } - (void) populatechildvclist { if (self.currentactivity == epi_normal) { arrayofimagenames = [[nsarray alloc]initwithobjects:@"ad_initiate_spi_normal.jpg", @"ad_initiate_cpi_normal.jpg", @"ad_initiate_eac_normal.jpg", @"ad_initiate_pv_normal.jpg", @"ad_initiate_ev_normal.jpg", nil]; } else { arrayofimagenames = [[nsarray alloc]initwithobjects:@"ad_initiate_spi_trigger.jpg", @"ad_initiate_cpi_trigger.jpg", @"ad_initiate_eac_trigger.jpg", @"ad_initiate_pv_trigger.jpg", @"ad_initiate_ev_trigger.jpg", nil]; istriggeron = yes; } arrayofchildvcs = [[nsmutablearray alloc] init]; [arrayofchildvcs addobject:[[popupdummyviewcontroller alloc]initwithnibname:@"popupdummyviewcontroller" bundle:nil]]; // note: add together 1 dummy vc initiate swap (int vcindex = 0; vcindex < [arrayofimagenames count]; vcindex++) { pislacomplianceviewcontroller *childpopupcontroller = [[pislacomplianceviewcontroller alloc]initwithnibname:@"pislacomplianceviewcontroller" bundle:nil]; childpopupcontroller.popupimagename = [arrayofimagenames objectatindex:vcindex]; childpopupcontroller.imageindex = vcindex; childpopupcontroller.istriggeron = istriggeron; [arrayofchildvcs addobject:childpopupcontroller]; } selectedviewcontroller = [arrayofchildvcs objectatindex:0]; selectedviewcontroller.view.frame = cgrectmake(0, 100, 100, 511); // took imageview coordinates // add together dummy view controller container view [self addchildviewcontroller:selectedviewcontroller]; [self.view addsubview:selectedviewcontroller.view]; // notify move done [selectedviewcontroller didmovetoparentviewcontroller:self]; } - (void)viewdidload { [super viewdidload]; // additional setup after loading view nib. [super viewdidload]; uiswipegesturerecognizer *swipegesturerecognizerright = [[uiswipegesturerecognizer alloc] initwithtarget:self action:@selector(handleswipegestureright:)]; [swipegesturerecognizerright setdirection:uiswipegesturerecognizerdirectionright]; [ self.view addgesturerecognizer:swipegesturerecognizerright]; uiswipegesturerecognizer *swipegesturerecognizerleft = [[uiswipegesturerecognizer alloc] initwithtarget:self action:@selector(handleswipegestureleft:)]; [swipegesturerecognizerleft setdirection:uiswipegesturerecognizerdirectionleft]; [ self.view addgesturerecognizer:swipegesturerecognizerleft]; endframe = deliverableimageview.frame; startofnewvcframe = deliverableimageview.frame; [self populatechildvclist]; // create list of kid view controllers , loads 1 invisible dummy view controller ready swiping } - (void)transitionfromviewcontroller:(uiviewcontroller *)fromviewcontroller toviewcontroller:(uiviewcontroller *)toviewcontroller { if (fromviewcontroller == toviewcontroller) { // cannot transition same return; } // animation setup toviewcontroller.view.frame = startofnewvcframe; // notify [fromviewcontroller willmovetoparentviewcontroller:nil]; [self addchildviewcontroller:toviewcontroller]; // transition [self transitionfromviewcontroller:fromviewcontroller toviewcontroller:toviewcontroller duration:1.0 options:0 animations:^{ toviewcontroller.view.frame = fromviewcontroller.view.frame; fromviewcontroller.view.frame = endframe; } completion:^(bool finished) { [toviewcontroller didmovetoparentviewcontroller:self]; [fromviewcontroller removefromparentviewcontroller]; }]; }

ios5 uibutton parent-child viewcontroller containment

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -