2013-08-03 4 views
0

Я работаю над своим книжным приложением, но у меня есть дилемма UIBarButtonItem. Я установил три кнопки на панели инструментов, как вы можете видеть на изображении ниже. Они работают нормально, пока я не установил один распознаватель крана, последние 2 строки в коде. То, что я хочу сделать, это выйти из этого модального экрана одним нажатием, а не двойным нажатием, а не добавить еще одну кнопку «Отмена» на панели инструментов. После того, как я установил однонаправленный распознаватель, ни одна из элементов панели не работает. Как я могу выбраться из этой дилеммы. Может ли кто-нибудь сказать мне, как обойти это? Спасибо за ваше время.Дилемма в toolbaritem

UIToolbar* toolbar = [[UIToolbar alloc] init]; 
toolbar.barStyle = UIBarStyleDefault; 
[toolbar sizeToFit]; 
toolbar.frame = CGRectMake(0, 410, 320, 50); 
toolbar.tintColor = _label.backgroundColor; 

self.title = @"Test For Toolbar"; 
UIBarButtonItem* TofC = [[UIBarButtonItem alloc] initWithTitle:@"T of C" 
                 style:UIBarButtonItemStyleBordered 
                 target:self 
                 action:@selector(showTofC)]; 


UIBarButtonItem* bookMark = 
    [[UIBarButtonItem alloc] initWithTitle:@"Book Mark"style:UIBarButtonItemStyleBordered 
                 target:self 
                 action:@selector(bookMarkIt)]; 


UIBarButtonItem* searchBtn = [[UIBarButtonItem alloc] initWithTitle:@"Search" 
                 style:UIBarButtonItemStyleBordered 
                 target:self 
                 action:@selector(searchIt)]; 


UIBarButtonItem* spacer = [[UIBarButtonItem alloc]  
        initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace 
             target:self 
             action:nil]; 





NSArray* buttons = 
      [NSArray arrayWithObjects:TofC, spacer, bookMark, spacer, searchBtn, nil]; 


self.navigationController.toolbarHidden = NO; 


[toolbar setItems:buttons animated:NO]; 
[self.view addSubview:toolbar]; 

/* 
// Single Tap 
UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] 
             initWithTarget:self 
             action:@selector(handleTapGesture:)]; 
[self.view addGestureRecognizer:tapGesture]; 

*/ 

// Single Tap 
Dum2ViewController* dum2ViewController = [[Dum2ViewController alloc] init]; 
UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] 
             initWithTarget:dum2ViewController 
             action:@selector(handleTapGesture:)]; 
[dum2ViewController.view addGestureRecognizer:tapGesture]; 

ответ

0

Вы добавили панель инструментов в качестве подвид вашего основного вида, а затем добавили распознаватель жестов к основному виду.

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

Что я рекомендую делать, это установить распознаватель жестов на любое содержимое (другое подвью?), Которое находится внутри вашего текущего вида. Таким образом, прикосновение на панели инструментов будет направлено на панель инструментов, и сенсорное изображение в представлении перейдет в подпрограмму (контент) и будет захвачено распознающим жестом.

Имеет смысл?

+0

привет, спасибо за ваш совет. Мне понравилось, что вы предложили, но не повезло. Посмотрите на код, который я добавил выше. Еще раз спасибо. – boochan224

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