是否可以在导航栏的左侧放置两个按钮,并在OnClick上转换最左侧的按钮?

时间:2015-02-28 04:09:01

标签: ios uinavigationcontroller uinavigationbar navigation-drawer uinavigationitem

我想显示两个按钮,或者可以使用相同的TouchUpInSide方法在导航栏的左侧显示两个图像。 当我点击那两个按钮时,最左边的按钮应该向左变换更多,当我再次点击两个按钮时,最左边的按钮会回到原始位置。 或者另一种方式: 我可以在导航棒的左侧放置两个UIImageView,并放置一个背景清晰的按钮,然后给出事件。

那么可能吗?如何?

1 个答案:

答案 0 :(得分:1)

如果您只想添加简单的UIButtons,可以使用以下方法。

1)创建多个UIButton对象

2)将所有这些按钮添加到UIView对象

3)创建UIBarButtonItem并将UIView作为自定义视图传递

代码如下:

// create the container view
UIView* viewContainer = [[UIView alloc] init];

// Create buttons and add it to the container view
UIButton* btnAdd = [UIButton buttonWithType:UIButtonTypeRoundedRect];

[btnAdd setTitle:@"Add" forState:UIControlStateNormal];
[viewContainer addSubview:btnAdd];

UIButton* btnRefresh = [UIButton buttonWithType:UIButtonTypeRoundedRect];

[btnRefresh setTitle:@"Refresh" forState:UIControlStateNormal];
[viewContainer addSubview:btnRefresh];

// now create a Bar button item with custom view
UIBarButtonItem* barBtnItem = [[UIBarButtonItem alloc] initWithCustomView:viewContainer];

// Set the navigation bar's right button item
self.navigationItem.rightBarButtonItem = barBtnItem;

或者如果你想添加bar UIBarButtonItems,可以添加多个barbuttons作为Anbu.Karthik说。

以下是添加多个栏按钮项的代码。

// Create UIToolbar to add two buttons in the right
UIToolbar* toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 133, 44.01)];

// Create standard "add" button
UIBarButtonItem* btnAdd = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:NULL];
btnAdd.style = UIBarButtonItemStyleBordered;

// Create spacer
UIBarButtonItem* spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];

// create standard "refresh" button
UIBarButtonItem* btnRefresh = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(btnRefresh_Clicked:)];
btnRefresh.style = UIBarButtonItemStyleBordered;

// stick the buttons in the UIToolbar
[toolBar setItems:@[btnAdd, spacer, btnRefresh] animated:NO];

// Put the toolbar in the UINavigationBar
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolBar];

希望这会对你有所帮助。 :)