Как установить barButtonItems в uiSplitViewController в iOS 5.1?

Я использую шаблон Master-Detail из XCode 4.3.1 и хочу получить доступ к панели инструментов в элементе управления detailView.

[самоэлемент навигации] setTitle:

устанавливает заголовок, но я не могу понять, как добавить barButtonItems ни через xib, ни программно. В прошлом с более ранним шаблоном SplitView (когда главное представление называлось корневым представлением) я мог получить доступ к панели инструментов rootView через контроллер разделенного представления в MainWindow.xib, и у меня была панель инструментов detailView прямо в файле detailView.xib.

Как мне лучше всего установить эти элементы (у меня их 4) на панели инструментов detailView?

Заранее спасибо.


person Shane Rayner    schedule 16.04.2012    source источник


Ответы (1)


Так что у меня есть ответ - пожалуйста, дайте мне знать, если у вас есть лучший!

В методе viewDidLoad моего masterViewController я заполнил панель инструментов в подробном представлении с помощью

[_detailViewController.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects: _detailViewController.firstButton, _detailViewController.secondButton, _detailViewController. ThirdButton, nil]];

Я создал эти кнопки с помощью

_detailViewController.firstButton = [[UIBarButtonItem alloc] initWithTitle:@"First" style:UIBarButtonItemStylePlain target:self action:@selector(firstButtonAction:)];

Я объявил каждую из этих кнопок в файле detailViewController.h, чтобы иметь возможность сослаться на них позже, но, вероятно, не нужно было использовать эти имена — здесь код просто удлинился. У меня также был uiButton, который я не мог добавить в массив кнопок, поэтому я создал кнопку, поместил ее в представление, а затем установил ее как titleView для элемента навигации:

   _detailViewController.biggerButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 230, 35)];
    [[_detailViewController biggerButton] addTarget:self action:@selector(biggerButtonTap:) forControlEvents:UIControlEventTouchUpInside];
    UIView *biggerButtonView = [[UIView alloc] initWithFrame:CGRectMake(80, 3, 230, 35)];

    [biggerButtonView addSubview:_detailViewController.biggerButton];

    _detailViewController.navigationItem.titleView = biggerButtonView;
person Shane Rayner    schedule 17.04.2012