2013-09-28 2 views
0

может ли любой орган помочь мне добавить две кнопки в вид заголовка навигации, используя свойство представления заголовка. Я попытался, но смог добавить только одну кнопку, используя следующий код.Как добавить две кнопки в представление заголовка строки UINavigation

UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 
customView.backgroundColor = [UIColor redColor]; 

UIButton *b1 = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; 
UIButton *b2 = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; 

[b1 setTitle:@"Hai" forState:UIControlStateNormal]; 
[b2 setTitle:@"Hello" forState:UIControlStateNormal]; 

[customView insertSubview:b1 atIndex:0]; 
[customView insertSubview:b2 atIndex:1]; 

self.navigationItem.titleView = customView; 
+0

что по этому поводу мой ответ попробовать с этим вы сделали некоторые MINORE ошибка взгляните на это http://stackoverflow.com/ вопросы/16958913/how-to-add-items-in-uinavigationbar-at-a-specific-position/16959449 # 16959449 –

ответ

0

использовать этот код:

UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 44)]; 
customView.backgroundColor = [UIColor redColor]; 

UIButton *b1 = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; 
UIButton *b2 = [[UIButton alloc] initWithFrame:CGRectMake(50, 0, 50, 50)]; 

[b1 setTitle:@"Hai" forState:UIControlStateNormal]; 
[b2 setTitle:@"Hello" forState:UIControlStateNormal]; 

[customView insertSubview:b1 atIndex:0]; 
[customView insertSubview:b2 atIndex:1]; 

self.navigationItem.titleView = customView; 

Выходы:

Example image of output

+0

вы проверили мой ответ? –

+0

см. Мое редактирование, вставив subviews, я получаю следующее исключение. – srinu

+0

почему -1? дайте мне знать причину –

0

Это потому, что вы добавили один и тот же фрейм для обеих кнопок. Итак, кнопки на самом деле перекрываются. Вместо этого вы должны использовать этот код:

UIButton *b1=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 50, 50)]; 
UIButton *b2=[[UIButton alloc]initWithFrame:CGRectMake(60, 0, 50, 50)]; 

Затем вы можете просто добавить эти кнопки в свой пользовательский вид.

[cusotmView addSubView:b1]; 
[cusotmView addSubView:b2]; 

Причина ошибки:

Вы не можете напрямую добавить UIButtons. Сначала их нужно обернуть как UIBarButtonItems.

Пример кода:

UIBarButtonItem *btn1 = [[UIBarButtonItem alloc] initWithCustomView:b1]; 
UIBarButtonItem *btn2 = [[UIBarButtonItem alloc] initWithCustomView:b2]; 
[cusotmView addSubView:btn1]; 
[cusotmView addSubView:btn2]; 
+0

Я пробовал ваш код, но не удача Я получаю исключение, например - [UIButton isSystemItem] unrecognized selector sent к примеру. – srinu

+0

@srinu: Проверьте обновление в своем ответе. – Bhavin

Смежные вопросы