Пользовательский TabBar с UIB-кнопками - PullRequest
0 голосов
/ 28 ноября 2011

Первый: простите за мой плохой английский!

У меня есть класс, в котором я создаю UIButton. Кнопка UIB Я добавляю UIView. В ViewController я хотел бы добавить эти пользовательские вкладки. Пока это хорошо работает. Однако существуют проблемы с addTarget: action: forControlEvents: - Как я могу запустить из ViewController метод экземпляра в классе? Класс имеет тип NSObject. Мой код:

TabBar *tabBar = [[TabBar alloc] init];
    [tabBar tabBarButton];
    [tabBar.home addTarget:tabBar action:@selector(switchView) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:tabBar.tabView];

А вот и мой класс:

@implementation TabBar
@synthesize tabView, home, list, charts, favorits, more;

-(void)tabBarButton{

    tabView = [[UIView alloc] initWithFrame:CGRectMake(0, 360, 320,56)];

    home = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 43, 56)];
    list = [[UIButton alloc] initWithFrame:CGRectMake(63, 0, 40, 56)];
    charts = [[UIButton alloc] initWithFrame:CGRectMake(123, 0, 49, 56)];
    favorits = [[UIButton alloc] initWithFrame:CGRectMake(192, 0, 66, 56)];
    more = [[UIButton alloc] initWithFrame:CGRectMake(278, 0, 42, 56)];

    [home setImage:[UIImage imageNamed:@"home.png"] forState:UIControlStateNormal];
    [list setImage:[UIImage imageNamed:@"liste.png"] forState:UIControlStateNormal];
    [charts setImage:[UIImage imageNamed:@"charts.png"] forState:UIControlStateNormal];
    [favorits setImage:[UIImage imageNamed:@"favorites.png"] forState:UIControlStateNormal];
    [more setImage:[UIImage imageNamed:@"more.png"] forState:UIControlStateNormal];

    home.tag = 1;
    list.tag = 2;
    charts.tag = 3;
    favorits.tag = 4;
    more.tag = 5;


    [tabView addSubview:home];
    [tabView addSubview:list];
    [tabView addSubview:charts];
    [tabView addSubview:favorits];
    [tabView addSubview:more];

}

-(void)switchView{
    NSLog(@"hi");
}

Когда я запускаю приложение, оно сразу падает, когда я нажимаю одну кнопку.

1 Ответ

1 голос
/ 29 ноября 2011

Если вы получаете нераспознанную ошибку селектора, вы можете попробовать:

[tabBar.home addTarget:tabBar action:@selector(switchView:) forControlEvents:UIControlEventTouchUpInside];

Обратите внимание на двоеточие после действия: @selector (switchView:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...