将栏按钮项添加到导航项的左侧

时间:2014-03-22 18:02:34

标签: ios xcode storyboard xcode5 xcode-storyboard

我正在关注向应用添加侧边栏导航的this教程。

在给定的源代码中,他们提供了预定义的故事板布局。其中一个是一个带有"导航项目"和一个" Bar Button Item"它出现在顶部导航栏的左侧。

我正在尝试在我的应用程序中执行相同操作,但按钮项目会自动显示在右侧,我找不到任何方法将其移动到左侧。

我注意到,在本教程中提供的示例中,它为这个插座选项提供了leftBarButton选项:

enter image description here

当我查看我的时候,它看起来像这样:

enter image description here

由于SWRevealView的工作方式,因此没有导航控制器。当我运行应用程序时,我可以看到按钮并且它工作正常,只有问题在于它的右侧。我已经将我的观点与示例进行了比较,似乎没有发现任何差异。

感谢任何帮助。

修改 这可能有所帮助。在故事板中,这就是工作示例的样子:

enter image description here

这就是我的样子

enter image description here

7 个答案:

答案 0 :(得分:18)

拖动BarButtonItem并将左侧放在导航项上。

答案 1 :(得分:7)

我找不到在storyboard中管理它的方法。所以我在viewcontroller的ViewDidLoad函数中编写了它,添加以下代码

self.navigationItem.leftBarButtonItem = _sidebarButton;
self.navigationItem.rightBarButtonItem = nil;

答案 2 :(得分:5)

1 /。右键点击Storyboard > Open as > Source Code

2 /。通过Ctrl + F : <name of View Controller>

查找您的View Controller

3 /。查找navigationItem&gt;您会看到barButtonItem,如下所示:

<navigationItem key="navigationItem" title="Title" id="n9s-Cu-Dtc">
   <barButtonItem key="rightBarButtonItem" title="Item" image="menu-icon-2.png" id="aN6-4T-o4T"/>
</navigationItem>

4 /。将key="rightBarButtonItem"更改为key="leftBarButtonItem"

保存并完成。右键点击Storyboard > Open as > Builder Interface

答案 3 :(得分:2)

我有完全相同的问题。在视觉上看起来我在主视图控制器上没有导航栏,但它就在那里。

我最终发现,如果我先点击导航视图控制器,主视图控制器上的导航栏就会出现。我在导航栏上放置了一个按钮栏项,但随后将其删除(暂时需要它以在导航栏中启用图像)。然后,我可以将我从Images.xcassets创建的菜单图像拖到主视图控制器的导航栏上,以创建正确的按钮栏项。您只需在右侧的“实用程序”部分中选择“媒体库”图标即可查找图像并使用它们。然后在相关的myviewcontroller.h文件中设置sidebarButton Referencing Outlet。您可以通过在按住控制键的同时选择导航栏上的菜单图像,然后使用辅助编辑器分屏模式将其拖动到关联的viewcontroller.h文件中的sidebarButton属性上来快速完成此操作。

在我的应用程序中的其他视图控制器上(类似于照片和地图视图控制器),我只需要让视图控制器在视图控制器属性部分(在故事板中)为其顶栏设置半透明导航栏设置实用工具)。然后,主视图控制器上出现相同的导航栏。我还必须让他们类似地创建菜单图像按钮栏项并在其* .h文件中设置sidebarButton Referencing Outlet。 Yu可以通过选择导航栏上的菜单图像,然后选择参考插座(+)符号并在按住ctrl键的同时将其拖动到视图控制器的黄色圆圈图标上来快速完成此操作。

不确定我是否遗漏了说明中的内容,但这对我有用。

答案 4 :(得分:1)

您还可以通过代码添加左侧按钮:

NSMutableArray *leftBtns = [[NSMutableArray alloc] init];

UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"LeftButton"] style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonPressed)];
[leftBtns addObject:leftBtn];

[self.navigationItem setLeftBarButtonItems:leftBtns animated:NO];

//方法

-(void)leftButtonPressed
{
    NSLog(@"Left Button Tapped");
}

答案 5 :(得分:0)

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];

    [button setImage:[[UIImage imageNamed:@"BtnBack"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
    [button.imageView setTintColor:[UIColor whiteColor]];
    [button addTarget:self action:@selector(buttonClicked:)
     forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc]
                                   initWithCustomView:button];
    self.navigationItem.leftBarButtonItem = buttonItem;

答案 6 :(得分:-1)

我通过在文档大纲中将导航栏从vc1拖动到vc2来解决它。导航栏现在可用于记分板,用于删除导航栏按钮。