1

XCodeの些細だが基本的な概念などに問題があります。

アプリを最初から作成し、ルート ビュー コントローラーを提示して、練習用に VC をプッシュ アンド ポップできるようにしたいだけです。

私を信じてください、私はたくさんの投稿を見ましたが、どれもうまくいかないようです.

私の手順は、新しい xcode プロジェクトを作成し、空のアプリケーションを作成することでした。シングル ビュー アプリを作成するのではなく、ここで学びましょう。

新しいファイルに移動し、obj-c クラスを追加して、それを使用して XIB を作成しました。私はこれを RootViewController と呼びました。

これが私のアプリ デリゲート h ファイルです。

#import <UIKit/UIKit.h>
#import "RootViewController.h"

UINavigationController *navVC;

@interface VCTestAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (retain, nonatomic) UINavigationController *navVC;

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;

@end

navVC という独自の UINavigationController を作成していることに注意してください。

次に、これが私のappledelegate mファイルの最初の関連セクションです...

#import "VCTestAppDelegate.h"

@implementation VCTestAppDelegate

@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
@synthesize navVC;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UIViewController *VC1 = [[UIViewController alloc]initWithNibName:@"RootViewController" bundle:nil];
    navVC = [[UINavigationController alloc]initWithRootViewController:VC1];


    [[self window] setRootViewController:navVC];
    [self.window makeKeyAndVisible];
    return YES;
}

そして、その表示を確認するために、そのルート VC にラベルを作成しました。いやいや。構文エラーやクラッシュはなく、シミュレーターは黒い画面を表示するだけです。私と一体何をしているの?次に、これを理解したら、ビューコントローラーをプッシュおよびポップする練習をしたいと思います。

私はこれを理解できないなんて信じられない。最近、自分のアプリを公開しましたが、ストーリーボードを使用しています。今は別のプロジェクトに移りたいと思っていますが、絵コンテを使用せずに、よりしっかりした基礎が必要です。iOS 5 以降のユーザーだけに制限したくありません。

ちなみに、シングルビューアプリケーションを起動してVCを追加してみましたが、ボタンをクリックすると「すべき」です。2 番目の VC をプッシュします。その構文は知っていますが、いじっていた他のアプリをテストしたところ、ボタンのIBActionブロックに入りましたが、そのVCをプッシュしませんでした....

[self navigationController] pushview を試しました... [navVC pushview...] だけを試しても何も動作しませんでした。

何が欠けているのか、人々が手動で (ストーリーボードの前にプログラムで) アプリを作成した方法がわかりません。

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

1

ウィンドウを作成する必要があります。空のアプリケーションのデフォルトコードを見ると、次の行があります。

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

練習用のシンプルなアプリケーションを作成している場合、コアデータをどのように使用していますか?

于 2013-01-26T20:59:05.897 に答える
0

私が考えることができるのは、UIWindow *windowあなたのアプリが現在必要としているnil.

あなたは XIB を作成したと言いました: "window" と "NavigationController" アウトレットを XIB の正しいコントローラーに関連付けてみてください。

コントローラーからウィンドウ ビューに Control キーを押しながらクリックします。「ウィンドウ」をクリックするオプションが表示されます。これにより、ウィンドウがコントローラーに関連付けられます。UINavigationController のコントローラーとビューで同じことを試してください。

于 2013-01-26T18:43:48.513 に答える