0

私はiphoneを学ぼうとしていることに注意してください。この問題については、解決策がわかりません。

Loading という名前の空のビューを作成しました。その Loading.xib にいくつかの画像を入力しました。今、これは私が使用しているコードです

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    Loading *firstView = [[Loading alloc]init];


    self.navigationController = [[UINavigationController alloc]init]; 
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
    [self.navigationController pushViewController:firstView animated:YES];
    // Override point for customization after application launch.
    [self.window addSubview:self.navigationController.view];
    [window makeKeyAndVisible];
    return YES;
}

問題は、コードを実行するたびに、空白の画面が表示されることです。

ロード画面をロードする方法を教えてください。推奨されるチュートリアルのリンクは歓迎します

@implementation Loading

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

よろしくお願いします

4

5 に答える 5

1

--> "Loading.xib" <--

これをロードすることはないので、"Loading" の init: セレクターのインスタンスが派手なことをしない限り、このビューは空です。

編集: 「これをどのように呼べばよいか、少し説明していただけますか?」

初期化をオーバーライド... *

- (id)init
{
    if ((self = [super initWithNibName:@"SomeNib" bundle:nil])) {
        // ...
    }

    return self;
}

* IB で所有者と nib が一致しない場合は、A) IB で配給権を適切に作成するか、B) コードで手動で作成します。

更新初期化:

[super initWithNibName:nil bundle:nil]

オーバーライド:

- (void)loadView
{
    [super loadView];

    UINib *nib = [UINib nibWithNibName:@"SomeNib" bundle:nil];
    [nib instantiateWithOwner:self options:nil];
}
于 2012-08-22T04:28:34.467 に答える
1

まず、Loading は View Controller ではなく View です。ナビゲーションコントローラーでプッシュしないでください。

次に、ナビゲーション コントローラーのビューをウィンドウに追加することはお勧めできません。

との詳細については、このスレッドを確認してください。UIViewUIViewController

代わりに、LoadingViewController を作成し、そのビュー (XIB ファイル) を必要に応じて変更してから、次のようなコードを使用することができます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
LoadingViewController *lvc= [[LoadingViewController alloc]init];

self.navigationController = [[UINavigationController alloc] initWithRootViewController:lvc]; 
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
// Override point for customization after application launch.
self.window.rootViewController = self.navigationController;
[window makeKeyAndVisible];
return YES;
}
于 2012-08-22T04:29:38.133 に答える
0

誰かがこのスレッドを見つけたが、それでも理解できない場合。これを試して。そのビュー コントローラーのターゲット メンバーシップを追加するのを忘れていました。

ここに画像の説明を入力

于 2014-08-09T18:48:13.830 に答える
0

nib ファイルからビューをロードする必要があります。次に例を示します。

Loading *firstView = [[Loading alloc] initWithNibName:@"Loading" bundle:nil];

また、UINavigationController を割り当てるときに、次のようにビューをプッシュするのではなく、ルート ビュー コントローラー プロパティも設定できます。

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController: firstView];
于 2012-08-22T04:26:22.753 に答える
0

次のようにコードを変更する必要があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    Loading *firstView = [[Loading alloc] initWithNibName:@"Loading" bundle:nil];
    self.navigationController = [[UINavigationController alloc]init]; 
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
    [self.window addSubview:self.navigationController.view];
    [window makeKeyAndVisible];
    [self.navigationController pushViewController:firstView animated:YES];
    return YES;
}

お役に立てば幸いです。

于 2012-08-22T04:29:15.150 に答える