4

これは非常に単純な質問ですが、その方法がわかりません。

私が最初に見つけたのは、ナビゲーションコントローラーを追加する必要があるということでした。ナビゲーションコントローラーを表示する必要はありませんが、試してみました。私はこれらのチュートリアルを見つけました: http ://www.ralfebert.de/tutorials/iosdev/navigationcontroller/

http://www.techotopia.com/index.php/Creating_a_Navigation_based_iOS_4_iPhone_Application_using_TableViews

http://iosmadesimple.blogspot.de/2012/09/navigation-based-project-doing-it-using.html

その他、ナビゲーションコントローラーをウィンドウオブジェクトに接続する必要があります。ただし、.xibにはウィンドウオブジェクトはありません。更新があるようです。AppDelegate.mでプログラムで作成されたウィンドウオブジェクトを見つけました。

プログラムで接続する必要があるということですか?はいの場合、どのように接続しますか?

5.1用のXcode4.4.1ビルドを使用しています。

次に、ここで説明されているビューを置き換えるためのハッキーなアプローチを見つけました:http: //fuelyourcoding.com/ios-basics-how-to-load-a-uiview-without-a-navigation-controller/

しかし、私はそれを行うための標準的な方法が何であるかを知りたいです。

Appleの開発ガイドには、ストーリーボードに関するものがあります。それは私が必要なものですか?

可能であれば、アプリにナビゲーションバーを追加せずに、別の新しい画面(もちろん、独自のコントローラーと.xibを使用)を起動する方法を知る必要があります。

4

3 に答える 3

4

これを行う最良の方法は、ナビゲーションコントローラーを使用することです。

AppDelegateアプリケーションでWillFinishLaunchingWithOptionsはこれを置きます...

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:<the view controller you want to use first>];

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

これにより、NavigationControllerを使用してアプリが起動し、最初に表示されるのは最初のViewControllerです。

バーを非表示にするには...

最初のViewControllerのviewWillAppear部分で...

[self.navigationController setNavigationBarHidden:YES animated:YES];

これにより、そのコントローラーのナビゲーションバーが非表示になります。

新しいViewControllerにプッシュするには...

MyNewViewController *newVc = [[MyNewViewController... (set it up).

[self.navigationController pushViewController:newVc animated:YES];

これは、最初のViewControllerから実行されます。

その後、ポップバックします。新しいVCではこれを行うだけです...

[self.navigationController popViewControllerAnimated:YES];

ナビゲーションコントローラーを実際に「所有」することはなく、実際に表示されることもありません。トランジションなどを管理するアプリの背後にあります。

于 2012-11-18T13:28:56.500 に答える
1

NavigationControllerを使用したくない場合は、モーダルビューを表示できます。このSOの質問では、その方法を見つけることができます。モーダルビューコントローラーの提示と却下

NavigationControllerを使用してビューを表示するかどうかは、そのビューの目的によって異なり、画面の流れと関係があります。一連のUITableViewに「ドリルダウン」する必要がある場合、または特定の画面に到達する前にさまざまな画面をナビゲートする必要がある場合は、UINavigationControllerを使用してそれを処理する必要があります。http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.htmlをご覧ください

個人的には、かなりのビュー数を持つアプリにStoryBoardsを使用することを好みます。これは、ストーリーボードの階層と各アプリ間の関係を明確に「把握」するのに役立つためです。

結局、それは好みの問題です。StoryBoardsについて詳しく知りたい場合は、次の投稿をお勧めします:http ://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

StoryBoardsを使用してモーダルビューを作成する方法を知りたい場合は、新しいプロジェクトを作成し、次の画面で[シングルビューアプリケーション]オプションを選択し、[ストーリーボードを使用する]オプションをオンにするのが最も簡単な方法です。それができたら、Xcodeのプロジェクトフォルダ内にある「MainStoryboard.storyboard」ファイルを選択する必要があります。次に、「View Controller」(正方形が付いた最初のオレンジ色の円)を右下隅からドラッグして、既に作成されているストーリーボードの横にあるストーリーボードにドロップします。

これで、2つの異なるViewControllerが必要になります。UIButtonを右下隅([Round Rect Button]オプションを表示するにはリストをスクロールする必要があります)から最初のViewController(左から矢印が付いているもの)にドラッグするだけです。

そして最後に、Controlを押しながらそのUIButtonをクリックし、そのボタンを他のViewControllerにリンクする必要があります。これを行うと、「アクションセグエ」ダイアログが表示されます。モーダルと出来上がりを選択するだけです!

StoryBoardは次のようになります。

モーダルビューコントローラー

:スイッチがわかりやすくなるように、2番目のViewControllerの色を変更しました。

最初にraywenderlichのチュートリアルを読んでから、この手順に従ってモーダルビューを実行することをお勧めします。

于 2012-11-18T14:34:08.240 に答える
0
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // Override point for customization after application launch.
    YourViewController *viewController = [[YourViewController alloc] init];
    navController = [[UINavigationController alloc] initWithRootViewController:viewController];
    // Add the view controller's view to the window and display.
    [window addSubview:navController.view];
    [window makeKeyAndVisible];
    return YES;
}
于 2012-11-18T13:30:03.903 に答える