2

UINavigationController アイテムに関連する質問を通過した後、私は正確な問題を投稿するようになりました..まず、MainWindow.xib作成したAppDelegateファイルに UINavigationController を追加せず、その後UIViewController(ないrootViewController) クラスで UINavigationController をファイルに追加しますDoneタイプの rightbarbutton を追加する必要があります太字で表示されているsearchbarDelegateメソッドに追加しています:-

- (void) searchBarTextDidBeginEditing:(UISearchBar *)theSearchBar {

//This method is called again when the user clicks back from teh detail view.
//So the overlay is displayed on the results, which is something we do not want to happen.

if(exhibDataObj.searching)
    return;

//Add the overlay view.
if(ovController == nil)
    ovController = [[OverlayViewController alloc] initWithNibName:@"OverlayView" bundle:[NSBundle mainBundle]];

CGFloat yaxis = self.navigationController.navigationBar.frame.size.height;
CGFloat width = self.view.frame.size.width;
CGFloat height = self.view.frame.size.height;

//Parameters x = origion on x-axis, y = origon on y-axis.
CGRect frame = CGRectMake(0, yaxis, width, height);
ovController.view.frame = frame;    
ovController.view.backgroundColor = [UIColor grayColor];
ovController.view.alpha = 0.5;

ovController.rvController = self;

[self.theTableView insertSubview:ovController.view aboveSubview:self.parentViewController.view];

exhibDataObj.searching = true;
letUserSelectRow = NO;
self.theTableView.scrollEnabled = NO;

//Add the done button.
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
                                          initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
                                          target:self action:@selector(doneSearching_Clicked:)];
 }

しかし、これは決して機能しません。

どんな助けもより価値があります。

4

1 に答える 1

4

私はあなたのコードを本当に素早くテストしましたが、それは私にとってはうまくいっているようですが、同じ問題が一度ありました。 . どういうわけか同じ間違いをしないようにする必要があります。

ただし、それがうまくいかない場合は、いつでもカスタム ボタンを設定してみてください。

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 5, 30, 30)];

button.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"done.png"]];

[button addTarget:self action:@selector(doneButtonClicked) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView:button];

self.navigationController.visibleViewController.navigationItem.rightBarButtonItem = customItem;
于 2012-08-31T07:33:18.813 に答える