ナビゲーションコントローラーベースのアプリを作成しました。ナビゲーションバーの下に開くビューには、UIImageViewと、ナビゲーション用にteuiimageの上部にある一連の「詳細開示」ボタンがあります。
私が気付いているのは、これらのボタンがシミュレーターに表示されたときに、デザイナー(インターフェイスビルダー)の位置からずれていることです。
ナビゲーションバーはそれと関係があるのではないかと思いますが、ナビゲーションバーの高さに比例して下に移動することはありません。
私は彼らに彼らの立場を保持するように言う方法がわかりません。
UIImageは、ナビゲーションバーが上部にある場合でも、画面の高さをオーバーフローしません。
上部のナビゲーションバーを使用するときに知っておく必要のあるガイドライン/落とし穴はありますか?
xcode4を使用しています
ありがとう
編集:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
StartScreenViewController *controller =
[[StartScreenViewController alloc] initWithNibName:@"StartScreenViewController" bundle:nil];
_navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
_navigationController.view.frame = CGRectMake(0,0, 320, 460);
_navigationController.title = @"Test";
//[self.window addSubview:_navigationController.view];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
もう1つは、「addsubview」メソッドを使用するとナビゲーションバーが切り捨てられ、navコントローラーをwindow.rootviewcontrollerに割り当てると、ナビゲーションバー全体が表示されることです。
編集2
これが私のAppDelegate.hの外観です
@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
IBOutlet UIView *mainView;
}
@property (nonatomic, retain) IBOutlet UIView *mainView;
@property (nonatomic, retain) IBOutlet UIWindow *window;
//@property (nonatomic, retain) IBOutlet UIViewController *viewController;
@end
これがAppDelegate.mのdidFinishLaunchingWithOptionsメソッドです
StartScreenViewController *controller = [[StartScreenViewController alloc] initWithNibName:@"StartScreenViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
navController.title = @"Test";
navController.view.frame = CGRectMake(0, 0, 320, 460);
[self.mainView addSubview:navController.view];
[self.window makeKeyAndVisible];
MainWindow.xibには、Appデリゲートとウィンドウがオブジェクトとして含まれています。ウィンドウの下にはUIViewがあります。
StartScreenViewcontrollerのxibファイルには、UIImageviewとボタンがあります。