2010-03-28 3 views
2

У меня есть UITableViewController, с которым я хотел бы добавить UIToolbar с помощью одной кнопки. В методе UITableViewControllerКак добавить uitoolbar в uitableviewcontroller?

- (void)viewDidLoad; 

У меня есть:

- (void)viewDidLoad { 
[super viewDidLoad]; 

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                      target:self 
                      action:@selector(pressButton1:)]; 

self.navigationItem.title = @"Some title"; 
self.navigationItem.leftBarButtonItem = button; 
} 

К сожалению, я не вижу панель инструментов, когда я запускаю мое приложение. Любые подсказки? Должен ли я сделать что-то еще?

ответ

3

Свойство контроллера изображения бесполезно, если этот контроллер не отображается внутри UINavigationController.
Если ваш контроллер просмотра находится внутри контроллера навигации, я не знаю, в чем проблема.
В противном случае вы можете использовать UINavigationItem, но вам необходимо создать UINavigationBar. Либо в Interface Builder (добавить UINavigationBar и добавить UINavigationItem, затем подключите UINavigationItem к розетке собственности объявил контроллер вида (вам не нужно подключать панель)
Или в вашем коде:.

UIBarButtonItem *item = [[UIBarButtonItem alloc] 
          initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
          target:self action:@selector(pressButton1:)]; 

UINavigationItem* navItem = [[UINavigationItem alloc] init]; 
navItem.rightBarButtonItem = item; 
navItem.title = @"Your title"; 

naviBar = [[UINavigationBar alloc] init]; 
naviBar.items = [NSArray arrayWithObject:navItem]; 
naviBar.frame = CGRectMake(0.0, 0.0, self.view.frame.size.width, 44.0); 
[self.view addSubview:naviBar]; 
[navItem release]; 
+0

Вот и все! Я понятия не имел, что мне нужно создать UINavigationItem. Я думал, что UITableView уже один. Спасибо @FenchKiss Dev! – Jakub

2

Ваш метод требует autorelease:

- (void)viewDidLoad { 
[super viewDidLoad]; 

UIBarButtonItem *button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(pressButton1:)] autorelease]; 

self.navigationItem.title = @"Some title"; 
self.navigationItem.leftBarButtonItem = button; 
} 

Там нет ничего плохого с кодом такового. В вашем вопросе говорится, что вы хотите добавить UIToolBar к вашему представлению? В самом деле? Или вы просто хотите добавить кнопку в NavigationItem для UITableView?

+0

Thanks Jordan! Вначале я хотел иметь UIToolbar в моем представлении с UITable View, но позже я понял, что могу использовать NavigationItem из UITTableViewController, и я вышел с кодом выше. Если нет ничего плохого, тогда любые идеи, почему я не вижу панель инструментов? – Jakub

+0

Вы проверяете свои соединения IB? Что показывает? Может быть, вы можете опубликовать код? – Jordan

1

Если вы не имеют использовать UITableViewController и не используется UINavigationController в вашем приложении уже, вы можете установить контроллер представления в качестве обычного UIViewController с панели инструментов и Tableview.

для этого в IB, перетащите UIViewController ob ject и добавьте панель инструментов и таблицу. Подключите точки выхода для обоих и установите делегат и источник данных в виде таблицы для владельца файлов. Добавьте любые другие элементы панели инструментов или кнопку и дать им розетки и методы, если вам нужно для кнопок и т.д. В файле ViewController.h, убедитесь, что вы подписываете его, чтобы соответствовать UITableViewDataSource и UITabBarDelegate:

@interface ViewController : UIViewController <UITableViewDataSource, UITabBarDelegate> 

Оттуда просто создайте свой делегат таблицы и методы источника данных, как обычно, и напишите свои методы действий с кнопками для любых кнопок, добавленных на панель инструментов.

0

Вы просто не указали панель инструментов. По умолчанию он скрыт. Чтобы исправить это, вы просто поместите эту строку кода:

self.navigationController.toolbarHidden = NO; 

Я пробовал, и это сработало. Просто убедитесь, что вы добавили метод viewDidLoad в файл реализации.

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