在向导航控制器iphone sdk添加右键按钮后,视图会向上移动

时间:2010-06-08 06:01:29

标签: iphone cocoa-touch uinavigationcontroller uibarbuttonitem

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

这就是我添加它的方式:

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

self.navigationItem.rightBarButtonItem = comment;

编辑:

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

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

提前完成。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

viewControllers视图的大小差异:

  1. 如果您是通过.XIB创建的,那么您将拥有状态栏。表示您的视图大小比窗口小20像素。 (320 * 460)

  2. 如果以编程方式创建它,则不会有状态栏。手段大小将为320 * 480。

  3. 通过这种方式,视图框架不同......

    因此,请将视图大小设置为320 * 460并尝试...

答案 2 :(得分:0)

好吧,经过多次努力之后,我发现导致问题的原因是因为我使用Three20库来显示类似Facebook的照片,其中的TTPhotoviewcontorller会更改导航栏导航栏的条形样式控制器到UIBarStyleBlackTranslucent,你需要做的是将bar样式属性重置为UIBarStyleDefault。你应该试着打电话

self.navigationController.navigationBar.bar = UIBarStyleDefault;