我有一个视图控制器,当用户点击按钮时启动异步网络请求,然后在请求完成后推送另一个控制器。在那个介入时间,我希望导航栏显示活动指示器,以便用户知道它正在获取数据。我在按钮的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线程不会被阻止(我可以点击其他按钮并在等待时导航不同的路径)。 我错过了什么吗?
答案 0 :(得分:2)
我解决了。
当键盘出现时,已经有一个取消按钮消失了。删除取消按钮的代码并不关心是删除按钮还是我的微调器。我将微调器代码移到了以后的位置,一切都很好。
答案 1 :(得分:0)
我在显示UIBarButtonItem
时遇到问题,如果该地方已存在self.navigationItem.rightBarButtonItem = nil;
self.navigationItem.rightBarButtonItem = spinner;
。如果是这种情况,请尝试:
{{1}}
答案 2 :(得分:0)
你也可以尝试像这样设置条形按钮项目(如果你的目标是至少iOS 5):
self.navigationItem.rightBarButtonItems = @[spinner];