Добавьте оба UIBarButtonSystemItemAdd и UIBarButtonSystemItemTrash к одной стороне элемента навигации или UISegmentedControl - PullRequest
2 голосов
/ 07 января 2010

Мне бы хотелось, чтобы UIViewController имел кнопки «Добавить» и «Корзина» справа от заголовка, добавив два UIBarButtonItems к элементу / панели навигации или добавив их к UISegmentedControl затем добавив SegmentedControl к элементу. Это возможно? Если да, как это достигается лучше всего?

Ответы [ 2 ]

1 голос
/ 31 августа 2010

Вы можете добавить несколько кнопок к элементу навигации, заключив их в UIToolbar, образец кода .

0 голосов
/ 07 января 2010

Я сделал нечто подобное. Я добавил две кнопки UIB в элемент / панель навигации, создав подкласс UIView, в котором есть две кнопки UIBiew. Затем вы можете сделать что-то вроде этого:

MyUIViewSubclass *tempview = [[[MyUIViewSubclass alloc] initWithFrame:CGRectMake(234,4,84,30)] autorelease];
UIBarButtonItem newButton = [[[UIBarButtonItem alloc] initWithCustomView:tempview] autorelease];
[self.navigationItem setRightBarButtonItem:newButton animated:NO];

Все, что вам нужно сделать, это расположить кнопки в MyUIViewSubclass, и все хорошо.

Кроме того, я передаю идентификатор цели в настраиваемой команде инициализации, чтобы упростить ориентацию кнопок в представлении. Так что для MyUIViewSubclass вместо initWithFrame у меня есть что-то вроде этого:

- (id)initWithFrame:(CGRect)aRect andTarget:(id)newTarget {
    if (self = [super initWithFrame:aRect]) {



        UIButton *editbtn = [[[UIButton alloc]  initWithFrame:fframe] autorelease];
        [editbtn addTarget:newTarget action:@selector(MBEdit) forControlEvents:UIControlEventTouchUpInside];

        [self addSubview:editbtn];
        [self setFirstbutton:editbtn];
        [editbtn release];



        UIButton *newbtn = [[[UIButton alloc]  initWithFrame:fframe] autorelease];
        [newbtn addTarget:newTarget action:@selector(MBNew) forControlEvents:UIControlEventTouchUpInside];

        [self addSubview:newbtn];
        [self setSecondbutton:newbtn];
        [newbtn release];

    }

    return self;

}
...