Is there a way to make UIBarButtonItem
exclusive touch? At the moment you can select multiple at the same time and it keeps crashing my application.
UIBarButtonItem, set exclusive touch
Asked Answered
Slightly easier method than subclassing the navbar but the same idea;
for(UIView *temp in self.navigationController.navigationBar.subviews)
{
[temp setExclusiveTouch:YES];
}
Put this just after you add your bar button items.
I managed this problem by subclassing UINavigationBar and overriding layoutSubviews method. Something like this:
- (void)layoutSubviews {
[super layoutSubviews];
for (UIView *view in self.subviews) {
view.exclusiveTouch = YES;
}
}
Dredging up the past I apologise. I stumbled into this and hoped there was a better way than looping through subviews.
I found that the following makes the UIBarButtonItems exclusive:
[self.navigationController.navigationBar setExclusiveTouch:YES];
iOS7 may have made exclusive touch inherited.
not working in iOS15 –
Zackzackariah
In iOS 7 it wasn't working. I have used this method to try fix it.
for(UIView *temp in self.navigationController.navigationBar.subviews){
[temp setExclusiveTouch:YES];
for(UIView *temp2 in temp.subviews){
[temp2 setExclusiveTouch:YES];
}
}
for me, I used a UIButton
, setting its isExclusiveTouch to true, to initialize the UIBarButtonItem
.
let button = UIButton(type: .system)
button.setTitle("foo", for: .normal)
button.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside)
button.isExclusiveTouch = true
let barButtonItem = UIBarButtonItem(customView: button)
This does not work for UIBarButtonItem created using initWithTitle
what doesn't work? shouldn't this be a comment on someone else's post? –
Meganmeganthropus
© 2022 - 2024 — McMap. All rights reserved.