Iphone UIButton not working in nested UIViews

Posted by Charles Peterson on Stack Overflow See other posts from Stack Overflow or by Charles Peterson
Published on 2009-05-04T04:01:06Z Indexed on 2010/05/31 4:02 UTC
Read the original article Hit count: 291

This is so damn simple im sure! Im missing something and im exhausted from trying to fix it. hopefully someone can help.

The Button in CharacterView.m works but the button nested down in CharacterMale.m does not. I'm not using IB everything is done progmatically. What would cause one button to work and other not?

/////////////////////////////////////////////////////////////////////////////////
 CharacterController.m
/////////////////////////////////////////////////////////////////////////////////
#import "CharacterController.h"
#import "CharacterView.h"

@implementation CharacterController

- (id)init {
    NSLog(@"CharacterController init");
    self = [ super init ];
    if (self != nil) {
    }
    return self;
}

- (void)loadView {
    [ super loadView ];
    characterView = [ [ CharacterView alloc ] init];
    self.view = characterView;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}


- (void)dealloc {
    [super dealloc];
}

@end

/////////////////////////////////////////////////////////////////////////////////
 CharacterView.m
/////////////////////////////////////////////////////////////////////////////////

#import "CharacterView.h"
#import "CharacterMale.h"

@implementation CharacterView

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        characterMale = [ [ CharacterMale alloc ] init];
    	[self addSubview: characterMale];

    	UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    	button.frame = CGRectMake(0, 200, 200, 100);
    	[button setImage:[UIImage imageNamed:@"btnCharSelect.png"] forState:UIControlStateNormal];
    	[button addTarget:self action:@selector(ApplyImage:) forControlEvents:UIControlEventTouchUpInside];
    	[ self addSubview: button ];
    }
    return self;
}

- (void)drawRect:(CGRect)rect {
}

-(void)ApplyImage:(id)sender
{
    NSLog(@"CharacterView button works");
}

- (void)dealloc {
    [super dealloc];
}

@end

/////////////////////////////////////////////////////////////////////////////////
 CharacterMale.m
/////////////////////////////////////////////////////////////////////////////////

#import "CharacterMale.h"
#import "CharacterController.h"

@implementation CharacterMale

- (id)init {
    self = [ super init];
    if (self != nil) {
    	UIImage *image = [UIImage imageNamed:@"charMale.png"];
    	imageView = [[ UIImageView alloc] initWithImage:image];
    	[image release];
    	[ self addSubview: imageView ];

    	UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    	button.frame = CGRectMake(0, 0, 200, 100);
    	[button setImage:[UIImage imageNamed:@"btnCharSelect.png"] forState:UIControlStateNormal];
    	[button addTarget:self action:@selector(ApplyImage:) forControlEvents:UIControlEventTouchUpInside];
    	[ self addSubview: button ];

    }
    return self;
}

-(void)ApplyImage:(id)sender
{
    NSLog(@"CharacterMal button works");
}

- (void)dealloc {
    [super dealloc];
}

@end

© Stack Overflow or respective owner

Related posts about iphone

Related posts about uiview