2

私のアプリケーションでは、ナビゲーションコントローラーの下のビューが上に移動し、ナビゲーションバーの下に表示されます。これは、xibを介して表示するために追加しているナビゲーションコントローラーにプログラムでbarbuttonitemを追加した後、透明になります。

これは私がそれを追加している方法です:

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

self.navigationItem.rightBarButtonItem = comment;

編集:

わかりました。これが発生しているのは、1つを除くすべての異なるタイプのカスタムセルについて、詳細ビューのxibファイルをタップされたセルのナビゲーションコントローラーにプッシュしているためですが、これについては、ビューを作成しました。コントローラーをプログラムでプッシュします。このセルをタップして詳細ビューで開かない限り、すべてが正常に機能しますが、このセルの詳細ビュー(常に正常に開きます)を開くと、他のセルの詳細ビューがシフトします。

誰かがこの問題に対処できますか?

よろしくお願いします。

4

3 に答える 3

0

すべてのビューのフレームを確認し、テストのためにすべてのサブビューに異なる色を設定します。問題は簡単に見つかります。または、より詳細なコードを投稿してください。

于 2010-06-08T12:43:12.950 に答える
0

viewControllersビューのサイズの違い:

  1. .XIBを使用して作成している場合は、ステータスバーが表示されます。これは、ビューサイズがウィンドウのサイズより20ピクセル小さいことを意味します。(320 * 460)

  2. プログラムで作成している場合、ステータスバーはありません。平均サイズは320*480になります。

このようにビューフレームは異なります...

したがって、ビューのサイズを320*460に設定して試してみてください...

于 2010-06-09T09:35:19.873 に答える
0

多くの苦労の末、問題の原因は、Facebookのような写真を表示するためにThree20ライブラリを使用しているため、その中のTTPhotoviewcontorllerがナビゲーションコントローラーのナビゲーションバーのバースタイルをUIBarStyleBlackTranslucentに変更することであることがわかりました。 、そしてあなたがする必要があるのは、バースタイルプロパティをUIBarStyleDefaultにリセットすることです。あなたは電話してみるべきです

self.navigationController.navigationBar.bar = UIBarStyleDefault;

于 2010-06-10T12:01:45.730 に答える