2013-11-26 8 views
3

Существует около 6-7 UIButtons на UINavigationController's вид. Все кнопки нажимают новый вид на UINavigationController.PushViewController in iOS 7

Вот моя проблема,

IOS 7:

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

Причина: Он толкает 2 вида на стек.

Для iOS 6 он работает нормально, есть ли способ, которым мы можем ограничить одновременное нажатие 2 кнопок для iOS 7?

+0

Это не проблема iOS 7. Даже в iOS 6 Если вы нажмете две кнопки одновременно, вы получите тот же результат. Youn нужно установить свойство Exclusive для YES UIButton. –

+0

@Bhumeshwerkatre, да, вы правы, но в iOS 6, если вы коснетесь обеих кнопок, будет активировано одно действие из двух. Если в iOS 7 запускаются оба действия. – Chahal

+0

У меня такая же проблема. Теперь я устанавливаю все свои кнопки с помощью exclusivetouch, но если я нажимаю кнопки с кнопками и другую кнопку, приложение crash –

ответ

3

С одним из ответов, представленных здесь, я изменил его для всего моего приложения. Я создал новый класс, который наследует класс UIButton и в этом классе добавлен метод

- (id)initWithCoder:(NSCoder *)inCoder{ 
     self = [super initWithCoder:inCoder]; 
     if (self) { 
      //do custom 
      [self setExclusiveTouch:YES]; 
     } 
     return self; 
} 

после того, как я использовал этот класс вместо UIButton.

Benifit: Не нужно делать выход.

1

Сделать Outlets сделать эти кнопки, а затем:

[yourButton setExclusiveTouch:YES]; 
+0

Ваша часть кода работает для меня (немного изменен, [присутствует в ответах ниже ссылки] (http://stackoverflow.com/questions/20217366/pushviewcontroller-in-ios-7/20218421#20218421)). Спасибо за помощь. – Chahal

1

мне удалось эту проблему путем создания подклассов UINavigationBar и доминирующими layoutSubviews метод. Что-то вроде этого:

- (void)layoutSubviews { 
    [super layoutSubviews]; 
    for (UIView *view in self.subviews) { 
     view.exclusiveTouch = YES; 
    } 
} 

оригинальный ответ UIBarButtonItem, set exclusive touch

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