1

私は現在、ViewDeck by Inferis を含むプロジェクトに取り組んでいます。

Facebook スタイルのメニュー インターフェイスを作成しようとしています。ただし、deckController のタイトルバーをグローバルではなくローカルに保つことができないようです。

基本的に、スタックにログイン ビュー コントローラーをプッシュする rootviewcontroller があります。派手なものはありません。しかし、ログインすると、IIViewDeckController をスタックにプッシュする必要がありますが、すべてのナビゲーション バーはありません

コーディング方法:

neighbourhoodViewController *nextViewController = [[neighbourhoodViewController alloc] initWithNibName:@"neighbourhoodViewController" bundle:nil];
menuViewController *leftViewController = [[menuViewController alloc]  initWithNibName:@"menuViewController" bundle:nil];
IIViewDeckController* deckController =  [[IIViewDeckController alloc] nitWithCenterViewController:nextViewController leftViewController:leftViewController];
deckController.leftSize = 100.0f;
[self.navigationController pushViewController:deckController animated:YES];

結果は次のスクリーンショットです。 http://s15.postimg.org/pli8zk53f/Schermafbeelding_2013_05_22_om_15_00_43.png

ご覧のとおり、メニューは「ビューコントローラー内」にありますが、外側にある必要があるため、ナビゲーションバーは中央の TableViewController と一緒に右にスライドする必要があります

すべてのナビゲーション バーを非表示にしようとしましたが、何も機能していないようです。また、例にあるので、アプリデリゲートから起動しようとしました。できます。ただし、Login View Controller から実行する必要があります。

thnx

4

1 に答える 1

2

構造を少し再配置する必要があります。

IIViewDeckController をアプリの rootViewController にし、その centerController を UINavigationController に設定します。

最初に LoginViewController を UINavigationController の topViewController にして、最初にログイン ビューを表示します。ログイン時に NavigationBar を表示したくない場合は、これを LoginViewController に追加します。

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

ログイン時にViewDeckのアクションを防ぐには、ViewDeckのデリゲートでこれを行います:

- (BOOL)viewDeckController:(IIViewDeckController*)viewDeckController shouldOpenViewSide:(IIViewDeckSide)viewDeckSide {
    UINavigationController *navController = (UINavigationController*)self.centerController;

    if([[navController viewControllers] count] < 2) {
        return NO;
    }

    return YES;
}

明らかに、ユーザーが正常にログインしたら、「neighbourhoodViewController」をスタックにプッシュするだけです。そして、彼らがログアウトすると、再びポップオフします。

于 2013-05-22T13:21:14.187 に答える