将右 barbuttonitem 添加到导航控制器 iphone sdk 后视图向上移动

Posted

技术标签:

【中文标题】将右 barbuttonitem 添加到导航控制器 iphone sdk 后视图向上移动【英文标题】:view shifts up after adding right barbuttonitem to navigation controller iphone sdk 【发布时间】:2010-06-08 06:01:29 【问题描述】:

在我的应用程序中,导航控制器下方的视图向上移动并在导航栏下方可见,因为它在以编程方式向导航控制器添加 barbuttonitem 后变得透明,我通过 xib 添加到视图中。

这是我添加它的方式:

UIBarButtonItem *comment = [[UIBarButtonItem alloc]
                            initWithBarButtonSystemItem:UIBarButtonSystemItemCompose
                            target:self
                            action:@selector(buttonPressed)];

self.navigationItem.rightBarButtonItem = comment;

编辑:

好的,我很清楚这种情况的发生,因为对于我所有不同类型的自定义单元格,除了一个,我将详细视图的 xib 文件推送到导航控制器以用于点击单元格,但对于这唯一一个,我已经以编程方式创建了一个视图控制器并推送它。因此,只要我不在详细视图中点击并打开此单元格,一切正常,但是在我打开此单元格的详细视图(始终可以正常打开)后,其他单元格的详细视图会发生变化。

有人可以解决这个问题吗?

提前感谢。

【问题讨论】:

您以编程方式创建的视图控制器的视图大小是多少? 我并没有真正设置它的大小,这会影响其他视图的位置吗? 是的,有时确实如此。尝试将 [[UIScreen mainScreen] bounds] 设置为视图大小,看看会发生什么 【参考方案1】:

检查所有视图的框架并为所有子视图设置不同的颜色。您会很容易发现问题。或发布更详细的代码。

【讨论】:

视图在被推送到导航控制器时处于正确的位置,只要这个以编程方式创建的没有被点击。但是点击这个之后,除了这个之外,其他都在上移。 如果你仍然面临这个问题,你可以在这里上传你的代码吗?【参考方案2】:

viewControllers 视图大小的差异:

    如果您通过 .XIB 创建它,那么您将在其中包含状态栏。表示您的视图大小比窗口的小 20 像素。 (320 * 460)

    如果您以编程方式创建它,则不会有状态栏。平均尺寸为 320*480。

这样视图框架就不同了……

所以将视图的大小设置为 320*460 并尝试...

【讨论】:

Thanx Manjunath 试图帮助我。但问题出在其他问题上。我已经发布了答案。【参考方案3】:

好的,经过大量的努力,我发现导致问题的原因是因为我使用 Three20 库来显示类似 facebook 的照片,其中的 TTPhotoviewcontorller 改变了导航栏的栏样式控制器为 UIBarStyleBlackTranslucent,您需要做的是将栏样式属性重置为 UIBarStyleDefault。你应该试着打电话

self.navigationController.navigationBar.bar = UIBarStyleDefault;

【讨论】:

你确定不会出问题吗?喜欢同时支持方向和所有?

以上是关于将右 barbuttonitem 添加到导航控制器 iphone sdk 后视图向上移动的主要内容,如果未能解决你的问题,请参考以下文章

添加两个右侧栏按钮项目到导航栏

如何向在 tabcontroller 中以编程方式创建的导航控制器中的 barbuttonitem 添加操作

如何在苹果电视的导航栏的 BarButtonItem 上移动焦点?

导航控制器中的静态 barButtonItems?

使用 Swift (Xcode 6) 更改 BarButtonItem 字体

BarButtonItem 上的箭头