标签: uinavigationitem

navigationController.navigationItem vs navigationItem

只是好奇,为什么设置self.navigationItem = ...工作,但self.navigationController.navigationItem失败了?这同样适用于self.toolbarItemsVS self.navigationController.toobarItems.

什么时候用self.navigationController.navigationItem

也许你会说,他们指的是不同的东西.但为什么self.navigationController.navigationBarHidden = YES隐藏导航栏.这不是指self.navigationController.navigationItem我想要的酒吧吗?

uinavigationcontroller uinavigationitem ios

24
推荐指数
1
解决办法
9148
查看次数

更改iOS 8中UIBarButtonItems之间的间距

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,但由于某些原因,这并没有改变间距.我曾经想过继承无论是UINavigationItemUIBarButtonItem,这样我可以设置相应的间距,但我似乎无法找到,我可以重写改变项目之间的间距的任何方法.

任何有关如何解决这个问题的见解将不胜感激!

spacing uinavigationitem ios swift ios8

24
推荐指数
3
解决办法
2万
查看次数

如何以编程方式获取UINavigationBar.navigationItem的高度?

我创建一个自定义UIToolbar为使用UIViewUINavigationBar.navigationitem.titleView属性.我想通过获取.navigationitem的当前高度而不是硬编码来将工具栏高度调整为.navigationitem的高度.有没有办法获得身高值?

uinavigationitem ios

23
推荐指数
1
解决办法
2万
查看次数

处理容器控制器中子视图控制器的UINavigationItem更改的最佳实践?

假设我有一个容器控制器,它接受一个UIViewControllers数组并将它们放置出去,这样用户就可以左右滑动以在它们之间进行转换.此容器控制器包含在导航控制器内,并成为应用程序主窗口的根视图控制器.

每个子控制器向API发出请求并加载在表视图中显示的项列表.根据显示的项目,可以在导航栏中添加一个按钮,允许用户对表格视图中的所有项目进行操作.

因为UINavigationController仅使用其子视图控制器的UINavigationItems,所以容器控制器需要更新其UINavigationItem以与其子视图的UINavigationItem同步.

容器控制器需要处理两种情况:

  1. 容器控制器的选定视图控制器发生更改,因此容器控制器的UINavigationItem应更新自身以模仿所选视图控制器的UINavigationItem.
  2. 子控制器更新其UINavigationItem,并且必须使容器控制器知道更改并更新其UINavigationItem以匹配.

我提出的最佳解决方案是:

  1. 在setSelectedViewController:方法中查询所选视图控制器的导航项,并将容器控制器的UINavigationItem的leftBarButtonItems,rightBarButtonItems和title属性更新为与所选视图控制器的UINavigationItem相同.
  2. 在setSelectedViewController方法中,KVO到leftBarButtonItems,rightBarButtonItems和所选视图控制器的UINavigationItem的title属性,每当其中一个属性改变容器控制器的UINavigationItem时.

这是我编写的许多容器控制器的一个反复出现的问题,我似乎找不到任何有关这些问题的文档解决方案.

人们对这个问题有什么解决方案?

cocoa-touch uinavigationcontroller uinavigationitem ios

23
推荐指数
2
解决办法
5283
查看次数

在Windows中的UIDavigationController上的iOS rightBarButtonItem

我正试图rightBarButtonItemUINavigationViewController堆栈的第二个视图控制器上放置一个.

我正在创建并设置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)

我错过了什么?该按钮不会出现.

uibarbuttonitem uinavigationitem ios swift

22
推荐指数
2
解决办法
3万
查看次数

UINavigationItem以标题为中心

我有一个导航栏,每侧都有左右两个按钮.我有一个customTitlelabel我设置为titleView的UINavigationItem.

[self.navigationItem setTitleView:customTitleLabel];

一切都很好.问题是,rightbarButton的大小是动态的,基于我在其中一个文本字段中得到的输入.

因此,标题会根据按钮之间的可用空间自动居中.

如何将标题设置为固定位置?

iphone uinavigationcontroller uinavigationitem ios

20
推荐指数
3
解决办法
3万
查看次数

更改UINavigationBar中UIBarButtonItem的宽度

我正在创建一个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 uibarbuttonitem uinavigationitem ios

20
推荐指数
6
解决办法
5万
查看次数

如何获得全尺寸UINavigationBar titleView

我试图在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 - 我知道我可以自己添加视图而不是附加到导航栏,我自己很容易定位它.我有理由需要它在导航栏上","这些原因在这里

iphone uinavigationbar uiview uinavigationitem

19
推荐指数
2
解决办法
2万
查看次数

如何识别self.editButtonItem按钮的点击事件?

我使用代码将UINavigationController的左侧栏按钮设置为编辑按钮

leftBarButton = self.editButtonItem;
Run Code Online (Sandbox Code Playgroud)

我想根据编辑按钮的单击操作更改其他按钮的一些禁用/启用属性.

如何找到是否按下编辑按钮?

iphone uinavigationcontroller uinavigationitem

18
推荐指数
3
解决办法
1万
查看次数

segue样式"替换"后缺少导航栏按钮项

我正在开发的iPad应用程序使用了Storyboard和segues.当用户点击主视图中的不同单元格时,我正在尝试显示不同的视图控制器.在参考不同的教程后,采取的步骤是 -

  • Storyboard,Master View Controller为表视图创建静态单元格并添加3个不同的行(即单元格1,单元格2,单元格3)
  • 添加了一个View Controller,选中它并附加一个Navigation Controller(Editor- > Embed In- > Navigation Controller)
  • 从单元格1开始Master View,我按住了ctrl键盘Navigation Controller.
  • 选择Segue Style"替换"和Destination"细节分割"
  • 在tableView:didSelectRowAtIndexPath中,添加了[self performSegueWithIdentifier:@"NewViewController"sender:self]来进行转换.

我看到的结果是细节视图被替换.

但导航栏没有条形按钮项Master.

因此,我无法单击Master按钮,该按钮将显示包含单元格的表格,从中我可以导航到不同的视图.

我已经阅读了很多博客,并且看到过有关替换类似问题的segue的评论.然而,在使用故事板和segues时,似乎没有人遇到过这个特定问题.

从我的理解使用segues应该帮助我实现我想要的.从那些尝试过这种方法的人那里,任何正确方向的指针都会有所帮助.

uinavigationitem uistoryboard uistoryboardsegue ios6

18
推荐指数
1
解决办法
1564
查看次数