向导航栏添加活动指示器
Posted
技术标签:
【中文标题】向导航栏添加活动指示器【英文标题】:Adding an activity indicator to the nav bar 【发布时间】:2014-02-17 21:22:03 【问题描述】:我有一个视图控制器,它在用户点击按钮时启动异步网络请求,然后在请求完成后推送另一个控制器。在此期间,我希望导航栏显示一个活动指示器,以便用户知道它正在获取数据。我在按钮的 IBAction 中有这段代码:
self.activityIndicator = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhite];
// I've tried Gray, White, and WhiteLarge
[self.activityIndicator startAnimating];
self.activityIndicator.hidden = NO;
UIBarButtonItem* spinner = [[UIBarButtonItem alloc] initWithCustomView: self.activityIndicator];
self.navigationItem.rightBarButtonItem = spinner;
指标未出现,但此代码已被调用。我看过有关该主题的其他帖子,他们说要这样做。 UI 线程在通话期间不会出现阻塞(我可以在等待时点击其他按钮并导航不同的路径)。 我错过了什么吗?
【问题讨论】:
你的导航栏是什么颜色的? 【参考方案1】:我解决了。
那里已经有一个取消按钮,当键盘出现时它会消失。删除取消按钮的代码并不关心它是删除按钮还是我的微调器。我将微调器代码移到了稍后的位置,一切都很好。
【讨论】:
【参考方案2】:如果UIBarButtonItem
已经存在于那个地方,我无法显示它。如果是这种情况,请尝试:
self.navigationItem.rightBarButtonItem = nil;
self.navigationItem.rightBarButtonItem = spinner;
【讨论】:
【参考方案3】:您也可以尝试像这样设置栏按钮项(如果您的目标至少为 ios 5):
self.navigationItem.rightBarButtonItems = @[spinner];
【讨论】:
以上是关于向导航栏添加活动指示器的主要内容,如果未能解决你的问题,请参考以下文章