2010-03-24 3 views
0

Я создал UIButton на вид и на действие UIButton [UIButton * button1_obj] еще одна кнопка [UIButton * button2_obj] создана на том же самом представлении.UIButton не нажимается при программировании на iPhone

Я столкнулся с этими двумя проблемами ... пожалуйста, посоветуйте мне, как действовать дальше.

  1. button1_obj появляется, когда я запустить свой проект, но его не нажата или выделена, ни какое-либо исключение.

  2. На действие button1_obj, button2-obj должен появиться на том же самом представлении, как очистить представление перед тем, как поставить на него button2_obj.

Код для вопроса (1):

-(void)start 

{ 

NSLog(@"--------------------------------------------------------------------"); 

NSLog(@"Entered CView start"); 

    //define size and position of view 
    subMainView_G_obj = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 480, 320)]; //initilize the view 
    //subMainView_G_obj.autoresizesSubviews = YES;    //allow it to tweak size of elements in view 

    UIButton_G_obj = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];  
    UIButton_G_obj.frame = CGRectMake(100,70, 150, 50); 
    UIButton_G_obj.backgroundColor = [UIColor clearColor]; 
    //UIButton_G_obj.adjustsImageWhenHighlighted = YES; 
    [UIButton_G_obj setTitle:@"UI" forState:UIControlStateNormal]; 
    [UIButton_G_obj addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; 
    [subMainView_G_obj addSubview:UIButton_G_obj]; 

    UIButton_G_obj = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];  
    UIButton_G_obj.frame = CGRectMake(100,150, 150, 50); 
    UIButton_G_obj.backgroundColor = [UIColor clearColor]; 
    UIButton_G_obj.adjustsImageWhenHighlighted = YES; 
    [UIButton_G_obj setTitle:@"Configuration" forState:UIControlStateNormal]; 
    [UIButton_G_obj addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; 
    [subMainView_G_obj addSubview:UIButton_G_obj]; 

    NSLog(@"Leaving CView start"); 
    NSLog(@"--------------------------------------------------------------------"); 
} 

- (void)action:(id) sender 
{ 

    NSLog(@"Inside action method.. On click of First View"); 
    buttonUIObj = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; 
    buttonUIObj.frame = CGRectMake(100,160,100,50); 
    [buttonUIObj setTitle:@"Next View" forState:UIControlStateNormal]; 
    buttonUIObj.backgroundColor = [UIColor clearColor]; 
    [subMainView_G_obj addSubview:buttonUIObj]; 

} 

Я объявляю UIButton_G_obj, buttonUIObj, subMainView_G_obj по всему миру.

ответ

0

Трудно узнать, в чем проблема с button1_obj, не видя кода. Однако для (2) вы, вероятно, захотите удалить button1_obj, вызвав [button1_obj removeFromSuperview].

+0

эй спасибо за решение (2) .. это сработало !! для (1), я обновил вышеуказанный вопрос. – suse

+0

У меня проблема в решении (2). Если я передам код как [Button1_obj removeFromSuperview], то он удаляет только одну кнопку. Я хочу, чтобы весь вид был очищен и дал новое представление. Как мне это сделать? – suse

0

О проблеме 1: Прежде всего, обе кнопки называются одинаковыми. Поэтому у вас есть утечка памяти, потому что вы выделяете пространство для своей кнопки дважды. Используйте разные названия для ваших кнопок.

О задаче 2: не кнопку 2 Вы можете скрыть, пока кнопка 1 нажата: В -(void)start

UIButton_G_obj_1.tag = 1; 
... 
UIButton_G_obj_2.hidden = YES; 
UIButton_G_obj_2.tag = 2; 

И в методе действий вы можете отобразить кнопку:

if (sender.tag == 1) { 
    UIButton_G_obj_2.hidden = NO; 
} 
Смежные вопросы