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を逃すかもしれません...!また、アクティビティをリリースすることを忘れないでください。インジケータ – Mahesh

+0

自分の状況であるかどうかわかりません。私のアプリケーションの1つでは、インジケータが表示されるまで少し時間がかかります。 [self performSelector:@selector(yourmethod)withObject: nil afterDelay: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]; 
関連する問題