只是好奇,为什么设置self.navigationItem = ...工作,但self.navigationController.navigationItem失败了?这同样适用于self.toolbarItemsVS self.navigationController.toobarItems.
什么时候用self.navigationController.navigationItem?
也许你会说,他们指的是不同的东西.但为什么self.navigationController.navigationBarHidden = YES隐藏导航栏.这不是指self.navigationController.navigationItem我想要的酒吧吗?
UINavigationItem我的视图控制器上有一个,我正在尝试减少两者之间的间距RightBarButtonItems.这是我的一些代码:
// Create two UIBarButtonItems
let item1:UIBarButtonItem = UIBarButtonItem(customView: view1)
let item2:UIBarButtonItem = UIBarButtonItem(customView: view2)
var fixedSpace:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
fixedSpace.width = -20.0
// Add the rightBarButtonItems on the navigation bar
viewController.navigationItem.rightBarButtonItems = [item2, fixedSpace, item1]
Run Code Online (Sandbox Code Playgroud)
可以看出,我使用的是FixedSpace UIBarButtonItem,但由于某些原因,这并没有改变间距.我曾经想过继承无论是UINavigationItem或UIBarButtonItem,这样我可以设置相应的间距,但我似乎无法找到,我可以重写改变项目之间的间距的任何方法.
任何有关如何解决这个问题的见解将不胜感激!
我创建一个自定义UIToolbar为使用UIView的UINavigationBar.navigationitem.titleView属性.我想通过获取.navigationitem的当前高度而不是硬编码来将工具栏高度调整为.navigationitem的高度.有没有办法获得身高值?
假设我有一个容器控制器,它接受一个UIViewControllers数组并将它们放置出去,这样用户就可以左右滑动以在它们之间进行转换.此容器控制器包含在导航控制器内,并成为应用程序主窗口的根视图控制器.
每个子控制器向API发出请求并加载在表视图中显示的项列表.根据显示的项目,可以在导航栏中添加一个按钮,允许用户对表格视图中的所有项目进行操作.
因为UINavigationController仅使用其子视图控制器的UINavigationItems,所以容器控制器需要更新其UINavigationItem以与其子视图的UINavigationItem同步.
容器控制器需要处理两种情况:
我提出的最佳解决方案是:
这是我编写的许多容器控制器的一个反复出现的问题,我似乎找不到任何有关这些问题的文档解决方案.
人们对这个问题有什么解决方案?
我正试图rightBarButtonItem在UINavigationViewController堆栈的第二个视图控制器上放置一个.
我正在创建并设置viewDidLoad我想要显示的视图控制器中的按钮.我的实际代码如下所示:
override func viewDidLoad() {
super.viewDidLoad()
menu_button_ = UIBarButtonItem(image: UIImage(named: "menu"),
style: UIBarButtonItemStyle.Plain ,
target: self, action: "OnMenuClicked:")
self.navigationController!.navigationItem.rightBarButtonItem = menu_button_
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?该按钮不会出现.
我有一个导航栏,每侧都有左右两个按钮.我有一个customTitlelabel我设置为titleView的UINavigationItem.
[self.navigationItem setTitleView:customTitleLabel];
一切都很好.问题是,rightbarButton的大小是动态的,基于我在其中一个文本字段中得到的输入.
因此,标题会根据按钮之间的可用空间自动居中.
如何将标题设置为固定位置?
我正在创建一个UIBarButtonItem并将其添加到我的导航栏,如下所示:
(void)viewDidLoad {
...
// Add the refresh button to the navigation bar
UIButton *refreshButton = [UIButton buttonWithType:UIButtonTypeCustom];
[refreshButton setFrame:CGRectMake(0,0,30,30)];
[refreshButton setImage:[UIImage imageNamed:@"G_refresh_icon.png"] forState:UIControlStateNormal];
[refreshButton addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *refreshBarButton = [[[UIBarButtonItem alloc] initWithCustomView:refreshButton] autorelease];
self.navigationItem.leftBarButtonItem = refreshBarButton;
}
Run Code Online (Sandbox Code Playgroud)
它在我运行时看起来是正确的,但我可以通过点击导航栏从x = 0到大约100来选择条形按钮项目.如何调整可选区域的宽度为30像素?
我试图在UINavigationBar中添加自定义控件作为titleView.当我这样做,尽管设置框架和通常假设全宽的属性,我得到这个:

明亮的蓝色可以忽略,因为它是我隐藏自定义控件的地方.问题是酒吧两端的窄条导航栏.如何摆脱这些,以便我的自定义视图将延伸100%?
CGRect frame = CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.width, kDefaultBarHeight);
UANavBarControlView *control = [[[UANavBarControlView alloc] initWithFrame:frame] autorelease];
control.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.navigationItem.titleView = control;
Run Code Online (Sandbox Code Playgroud)
PS - 我知道我可以自己添加视图而不是附加到导航栏,我自己很容易定位它.我有理由需要它在导航栏上","这些原因在这里
我使用代码将UINavigationController的左侧栏按钮设置为编辑按钮
leftBarButton = self.editButtonItem;
Run Code Online (Sandbox Code Playgroud)
我想根据编辑按钮的单击操作更改其他按钮的一些禁用/启用属性.
如何找到是否按下编辑按钮?
我正在开发的iPad应用程序使用了Storyboard和segues.当用户点击主视图中的不同单元格时,我正在尝试显示不同的视图控制器.在参考不同的教程后,采取的步骤是 -
Storyboard,Master View Controller为表视图创建静态单元格并添加3个不同的行(即单元格1,单元格2,单元格3)View Controller,选中它并附加一个Navigation Controller(Editor- > Embed In- > Navigation Controller)Master View,我按住了ctrl键盘Navigation Controller.Segue Style"替换"和Destination"细节分割"我看到的结果是细节视图被替换.
但导航栏没有条形按钮项Master.
因此,我无法单击Master按钮,该按钮将显示包含单元格的表格,从中我可以导航到不同的视图.
我已经阅读了很多博客,并且看到过有关替换类似问题的segue的评论.然而,在使用故事板和segues时,似乎没有人遇到过这个特定问题.
从我的理解使用segues应该帮助我实现我想要的.从那些尝试过这种方法的人那里,任何正确方向的指针都会有所帮助.
uinavigationitem ×10
ios ×7
iphone ×3
swift ×2
cocoa-touch ×1
ios6 ×1
ios8 ×1
spacing ×1
uistoryboard ×1
uiview ×1