2

我已閱讀關於此特定主題的一些答案,但出於某種原因,我的代碼似乎無法正常工作。這是UISearchBarDelegate委託方法-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBarUINavigationBar內的活動指示器

UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
UIBarButtonItem *activity = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator]; 
[[self navigationItem] setRightBarButtonItem:activity]; 
[activity release]; 
[activityIndicator startAnimating]; 

任何幫助中或建議,非常感謝!

+0

您可能忽略activityIndi​​catorViewStyle ..!也不要忘記釋放activityIndi​​cator – Mahesh

+0

不知道這是你的情況,在我的應用程序之一,我做了一些指示燈延遲使用例如: [self performSelector:@selector(yourmethod)withObject:零後延遲:0.2]; – user523234

回答

2

我相信UIActivityIndicatorView的指定初始值爲initWithActivityIndicatorStyle:。嘗試像這樣創建activityIndicator

UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 
+0

不幸的是,不幸的是。 (還是)感謝你的建議。任何其他想法? – Mason

+0

你確定委託方法被調用嗎?當然是 –

+0

。其他所有事情都正確地發生(包括委託方法中的其他事情)。 – Mason

1

試試這個

UIView *view_actviti = [[UIView alloc] initWithFrame:CGRectMake(6,310,59,32)]; 
    UIActivityIndicatorView *act =[[UIActivityIndicatorView alloc] init]; 
    act.frame=CGRectMake(0, 0, 30, 30); 
    UIBarButtonItem *actItem = [[[UIBarButtonItem alloc] initWithCustomView:view_actviti] autorelease]; 
    [view_actviti addSubview:act]; 
    self.navigationItem.rightBarButtonItem = actItem; 
    [act startAnimating]; 
+0

這裏也沒有運氣。 (還是)感謝你的建議。 – Mason

0

試試這個:

UIActivityIndicatorView *activityIndicator = 
    [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
UIBarButtonItem * barButton = 
    [[UIBarButtonItem alloc] initWithCustomView:activityIndicator]; 

[[self navigationItem] setRightBarButtonItem:barButton]; 

[barButton release]; 
[activityIndicator startAnimating]; 

還可以使用此停止和刪除activityIndi​​cator:

[[self navigationItem] setLRightBarButtonItem:nil]; 
[activityIndicator stopAnimating]; 
[activityIndicator release];