0

解決

ストーリーボード名がメインストーリーボードファイル名としてリストされていることをplistで確認してください。


クラスに接続されているとがStoryboardあり、それはとして設定されています。アプリを実行すると(シミュレーター(5.1)で)、上部に青みがかったナビゲーションバーが表示された空白の黒い画面が表示されます。UINavigationViewControllerNavigationViewControllerUIWindow rootViewController

最初の問題は、ストーリーボードでナビゲーションバーを黒に設定したことです。また、ステータスバーを半透明の黒に設定しました。アプリの実行時には、どちらのスタイルも尊重されません。

そして2番目の問題は、ストーリーボードでは。との関係があるにもかかわらず、ナビゲーションコントローラーのビューが空であるということUITableViewControllerです。

これらの問題の両方を修正するにはどうすればよいですか。Xcodeを使い始めたばかりで、以前は4.0を使用していたので、ストーリーボードが私を失望させています...

アップデート

リクエストされたコードは次のとおりです。明らかに、ストーリーボードを投稿することはできません(できますか?)。

AppDelegate:

#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize navigationController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

navigationController = [[NavigationViewController alloc] init];

    self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];

    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
}

- (void)applicationWillTerminate:(UIApplication *)application {
}

@end

NavigationViewController:

#import "NavigationViewController.h"

@interface NavigationViewController ()
@end

@implementation NavigationViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {
    }

    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (void)viewDidUnload {
    [super viewDidUnload];
}

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end
4

1 に答える 1

7

問題は、ストーリーボードのルートコントローラーではなく、完全に空白のルートコントローラーをルートコントローラーとして設定していることです。コードのその部分を削除し、ストーリーボードで「初期ビューコントローラーです」と表示されているものをクリックするだけです。

ストーリーボードを使用する場合、通常、appdelegateを変更する必要はありません。これは、表示される最初のビューであるxcodeが設定され、そのすべてがストーリーボードの設定方法のみに基づいているためです。これは、どのストーリーボードがメインボードとして使用されるかが記載されているplistで確認できます。

そのようにナビゲーションコントローラーをロードしたい場合は、ストーリーボード自体からビューコントローラーを取得して提示する必要があるようなことを行うことができます。

instanceiateViewControllerWithIdentifier

ただし、ストーリーボードを使用する場合は、最初のストーリーボードとして設定されているもの(矢印が指しているビューコントローラーとして表示されます)が自動的に読み込まれるため、その必要はありません。

アプリのデリゲートメソッドは次のようになります

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}
于 2012-06-23T02:56:55.197 に答える