я получил следующий код:
- (id)init {
if (self = [super init]) {
self.title = @"please wait";
UIBarButtonItem *favorite = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"star.png"] style:UIBarButtonItemStylePlain target:self action:@selector(buttonFavoriteClicked:)];
self.navigationItem.rightBarButtonItem = favorite;
}
return self;
}
но моя кнопка все еще походит на Кнопку с UIBarButtonItemStyleBordered
существует ли способ установить кнопку со стандартным стилем в этом положении?
Создайте UIButton в построителе интерфейса, сделайте так, чтобы он выглядел именно так, как вы хотите. Создайте выход для in в вашем .h:
IBOutlet UIButton * _myButton;
Затем установите его в качестве элемента кнопки правой панели, используя настраиваемый вид, который удалит границу:
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:_myButton];
Это работает, потому что UIButton является подклассом UIView.
Хотя Фрэнк прав, этот код должен быть в viewDidLoad
, проблема в том, как выглядят кнопки BarButtons. Если вы хотите, чтобы он выглядел по-другому, вам нужно использовать другой тип UIView. Вы можете просто добавить UIButton в UIToolbar.
-(void)viewDidLoad {
[super viewDidLoad];
self.title = @"please wait";
self.navigationItem.rightBarButtonItem = [[[UIButton alloc] init] autorelease];
}
Изменить:
Извините, вам нужен простой UIBarButtonItem. Я не верю, что вы можете сделать это с помощью UINavigationBar. Вы можете попробовать добавить UserInteractionEnabled UILabel в качестве rightBarButtonItem, я не уверен, сработает это или нет.
Кажется, в настоящее время это невозможно.
sbwoodside предлагает решение .
Попробуйте вместо этого:
- (id)init {
if (self = [super init]) {
self.title = @"please wait";
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 25, 25)];
[button setImage:[UIImage imageNamed:@"star.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonFavoriteClicked) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *favorite = [[UIBarButtonItem alloc] initWithCustomView:button];
[button release];
self.navigationItem.rightBarButtonItem = favorite;
}
return self;
}
Надеюсь, это поможет.