如何将UIActivityIndi​​cator留在导航控制器中?

时间:2012-05-06 19:30:09

标签: objective-c xcode uiactivityindicatorview

我有ViewController,其中是WebView(在里面加载网站),我希望在开始加载时在导航控制器中显示UIActivityIndi​​cator,并在加载完成后将其删除。

我有嵌入式导航控制器的ViewController,我试图放弃IB UIIndicator但是没有成功,它放在内容部分,所以请告诉我如何以编程方式将指示器放在导航栏的左侧。

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

不幸的是,您无法仅使用故事板将活动指示器放在导航栏中。

为活动指示器创建一个实例变量:

@implementation
{
    UIActivityIndicatorView *activityIndicator;
}
...

viewDidLoad方法中,实例化它并将其添加到导航栏:

activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];

默认情况下,属性hidesWhenStoppedYES,因此在未自动动画时会隐藏它。您需要做的就是分别在startAnimatingstopAnimating打电话时,可以打电话给{{1}}和{{1}}。

答案 1 :(得分:0)

试试这个:

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
self.navigationController.navigationItem.leftBarButtonItem = button;