2016-12-12 4 views
0

Я создал пользовательскую вкладку и добавил пользовательское изображение в центральном положении. Однако всякий раз, когда я нажимаю на эту настраиваемую кнопку, это не приводит меня к выбранному элементу.Пользовательская кнопка на панели не работает

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    UIImage* buttonImage = [UIImage imageNamed:@"icon_floating.png"]; 
    button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); 
    [button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

    CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height; 
    if (heightDifference < 0) 
     button.center = self.tabBar.center; 
    else 
    { 
     CGPoint center = self.tabBar.center; 
     center.y = center.y - heightDifference/2.0; 
     button.center = center; 
    } 

    [button addTarget:self 
       action:@selector(myAction) 
    forControlEvents:UIControlEventTouchUpInside]; 

    [self.view addSubview:button]; 

} 

-(void) myAction 
{ 
    // the following line is getting called 
    self.tabBarController.selectedIndex = 2; 
} 

enter image description here

+0

Вы подтвердили, что 'self.tabBarController' не' nil'? – rmaddy

+0

кажется, что это 'nil'? Как мне это исправить? – hotspring

+0

Это розетка? Подключите его правильно в Interface Builder. – rmaddy

ответ

2

кажется, что «self` представляет собой контроллер панели вкладок. Изменение:

self.tabBarController.selectedIndex = 2; 

в

self.selectedIndex = 2; 
+0

отлично! Оно работало завораживающе! – hotspring

Смежные вопросы