3

簡単な紹介

私はiOSプラットフォームを使用したアプリ開発の分野ではちょっと新しいです。現在、iPadだけでなくiPhone用のマルチビューアプリケーションを開発する必要があります。

私の研究

私はマルチビューアプリケーションの開発についていくつかの調査を行ってきましたが、一般的なアプローチは、提供されているコントローラーの1つをルートビューコントローラー(UIタブバーコントローラーなど)として使用することです。それか、独自のルートビューコントローラを作成します。

私の問題

私が今戦っている特定の問題は、主に次のもので構成されるより複雑なアプリケーションを構築する方法に関するものです。

-ログインビュー(これは、アプリを開いたときにユーザーに表示される最初のビューです)-UIタブバーコントローラーを使用してナビゲートする必要があるアプリケーションの残りの部分)

私が今思いついたのはこのアイデアです:

カスタムルートビューコントローラを作成します。このルートビューコントローラーは、最初にログインビューをユーザーに表示します(ログインビューをそれ自体のサブビューとして追加することにより)。ログイン後、サブビューをUIタブバーコントローラーに変更する必要があります。

実際の質問

私の質問は、これがそれを行うための許容可能なアプローチであるかどうかです。基本的に、私はルートビューコントローラーを持っていて、それらのビューをそれ自体のサブビューとして追加することによってビューを切り替えます。

私はそれを行うための許容できる方法を議論する記事を実際に見つけることができませんでした。そして、私の現在の考えに関する私の懸念は、基本的にアプリケーションのすべてのビューを含み、それらを切り替えるメインルートビューコントローラーがすぐに乱雑になる可能性があるということです。

任意の入力が適用されます:)

前もって感謝します。

4

1 に答える 1

2

私はしばらく前に似たようなパターンを探していました。私が見つけたものから、ログイン画面を処理する最良の方法は、メインアプリケーションウィンドウにそれを挿入することであると結論付けました。だからあなたはあなたのUIApplicationDelegateクラスでそれをやっています

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    if ([self loginNeeded])
    {
        [self presentLoginScreen];
    }else
    {
        [self presentTabBarController];
    }

    [self.window makeKeyAndVisible];
    return YES;
}

つまり、presentLoginScreenは次のようになります。

- (void)presentLoginScreen
{
    SMLoginViewController* loginVC=[[SMLoginViewController alloc] initWithNibName:@"SMLoginViewController" bundle:[NSBundle mainBundle]];
    [self.window setRootViewController:loginVC];
    [loginVC release];
}

同様に、[self presentTabBarController]実際のアプリケーションを含むUITabbarControllerを作成してから、[self.window setRootViewController:tabbarController];

これは、拡張しないので便利です。表示階層は不要です。

于 2012-01-30T11:29:07.037 に答える