iOS 7 中的 PushViewController
Posted
技术标签:
【中文标题】iOS 7 中的 PushViewController【英文标题】:PushViewController in iOS 7 【发布时间】:2013-11-26 12:39:59 【问题描述】:UINavigationController's
视图上大约有 6-7 个UIButtons
。
所有按钮都会在UINavigationController
上推送一个新视图。
这是我的问题,
ios 7:
问题:如果我同时点击 2 个按钮,应用程序正在加载一个新视图,但是当我按下返回按钮时,应用程序会崩溃。
原因:它正在向堆栈推送 2 个视图。
对于 iOS 6,它运行良好,有什么方法可以限制在 iOS 7 上同时点击 2 个按钮?
【问题讨论】:
这不是 iOS 7 的问题。即使在 iOS 6 中,如果同时按下两个按钮也会得到相同的结果。您需要将 UIButton 的 Exclusive 属性设置为 YES。 @Bhumeshwerkatre,是的,您是对的,但在 iOS 6 中,如果您同时触摸两个按钮,则会调用这两个按钮中的一个操作。而在 iOS 7 中,这两个操作都在调用。 我也有同样的问题。现在我用 Exclusivetouch 设置我的所有按钮,但如果我按下返回按钮和另一个按钮,应用程序崩溃 @digitalPad ,我通过创建一个新类(由 UIButton 继承)解决了它,然后使用了一个方法 'initWithCoder:(NSCoder *)inCoder' (它允许您以编程方式设置按钮的属性),您需要做的就是在 nib 文件(或您创建按钮的文件)中更改自定义类名(在按钮的检查器中)。 【参考方案1】:使用此处提供的答案之一,我为我的整个应用程序修改了它。我创建了一个继承 UIButton 类的新类,并在该类中添加了一个方法
- (id)initWithCoder:(NSCoder *)inCoder
self = [super initWithCoder:inCoder];
if (self)
//do custom
[self setExclusiveTouch:YES];
return self;
之后我使用了这个类而不是 UIButton。
好处:无需出风头。
【讨论】:
【参考方案2】:让奥特莱斯做这些按钮,然后:
[yourButton setExclusiveTouch:YES];
【讨论】:
您的代码对我有用(稍作修改,present in answers below link)。感谢您的帮助。【参考方案3】:我通过继承 UINavigationBar 和覆盖 layoutSubviews 方法来解决这个问题。像这样的:
- (void)layoutSubviews
[super layoutSubviews];
for (UIView *view in self.subviews)
view.exclusiveTouch = YES;
原答案UIBarButtonItem, set exclusive touch
【讨论】:
以上是关于iOS 7 中的 PushViewController的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap:iOS 7 中的 UIPickerView 不会像在 iOS 6 中那样自动调整字体大小。关于如何在 iOS 7 中实现的任何解决方案?
iOS 7 中的 MultipeerConnectivityFramework
容器覆盖 UITableView - iOS 7 中的 SearchBar / SearchDisplayController