ios - UIView and UIViewController -


i know basic stuff need understand whether understanding of correct.

so want this. want view label on when double tapped flips , loads view. on second view want uipickerview , above have button saying back. both views of same size uipickerview 320px x 216px.

what thinking of create 2 uiviewclasses named labelview , pickerview. create viewcontroller on loadview loads labelview when user double taps labelview event in labelview class sent viewcontroller can unload loadview , load pickerview.

does sound best way ? there simpler way ? unsure how route event labelview class viewcontrollerclass.

i dont know efficient way it(as language),but sure have solved ur problem. made simple program that.three classes involved here in eg baseviewcontroller (which show 2 views),labelview , pickerview (according ur requirement).

in labelview.h

@protocol labelviewdelegate -(void)didtaptwicelabelview; @end  @interface labelview : uiview {  id <labelviewdelegate> delegate; } @property(nonatomic,retain)id <labelviewdelegate> delegate; -(void)didtouch;  @end 

in labelview.m

@synthesize delegate;  -(id)initwithframe:(cgrect)frame {  self = [super initwithframe:frame]; if (self)  {     uilabel* labl = [[uilabel alloc] initwithframe:cgrectmake(10, 5, frame.size.width-20,20)];     labl.text = @"some text";     [self addsubview:labl];     [labl release]; labl = nil;     self.backgroundcolor = [uicolor graycolor];     uitapgesturerecognizer* ges = [[[uitapgesturerecognizer alloc] initwithtarget:self action:@selector(didtouch)] autorelease];     ges.numberoftapsrequired = 2;     [self addgesturerecognizer:ges];      }     return self; }   -(void)didtouch { [delegate didtaptwicelabelview]; } 

//=============================================================

in pickerview.h

@protocol pickerviewdelegate -(void)didtapbackbutton; @end  @interface pickerview : uiview <uipickerviewdelegate,uipickerviewdatasource>{  id <pickerviewdelegate> delegate; } @property(nonatomic,retain)id <pickerviewdelegate> delegate;  @end 

in pickerview.m

@implementation pickerview  @synthesize delegate;  -(id)initwithframe:(cgrect)frame {  self = [super initwithframe:frame]; if (self)  {     uipickerview* picker = [[uipickerview alloc] initwithframe:cgrectmake(0, 30, 320, 216)];     picker.delegate = self;     picker.datasource = self;     [self addsubview:picker];     [picker release]; picker = nil;     self.frame = cgrectmake(frame.origin.x, frame.origin.y, 320, 250);      uibutton* btn = [uibutton buttonwithtype:uibuttontyperoundedrect];     [btn setframe:cgrectmake(10, 1, 50, 27)];     [btn settitle:@"back" forstate:uicontrolstatenormal];     [btn addtarget:self action:@selector(backbutton) forcontrolevents:uicontroleventtouchupinside];     [self addsubview:btn];     }     return self; } -(void)backbutton { [delegate didtapbackbutton]; } 

//====================================================================

in baseviewcontroller.h

#import "labelview.h" #import "pickerview.h"  @interface varticallabel :    uiviewcontroller<uitextfielddelegate,pickerviewdelegate,labelviewdelegate> {  pickerview* mypickerview; labelview* mylabelview; }  @end 

in baseviewcontroller.m

-(void)viewdidload {     [super viewdidload];  mypickerview= [[pickerview alloc] initwithframe:cgrectmake(0, 50, 320, 250)]; [self.view addsubview:mypickerview]; mypickerview.delegate = self;  mylabelview= [[labelview alloc] initwithframe:cgrectmake(0, 50, 320, 250)]; [self.view addsubview:mylabelview]; mylabelview.delegate = self;  mypickerview.hidden = yes;  } #pragma mark pickerviewdelgate -(void)didtapbackbutton { mypickerview.hidden = yes; mylabelview.hidden = no; }  #pragma mark labelviewdelegate -(void)didtaptwicelabelview { mypickerview.hidden = no; mylabelview.hidden = yes; } 

Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -