3

メニューに ECSlidingViewController を使用しています。初期コントローラー、メニュー、ホームページ、ログイン ページがあります。ユーザーが認証されている場合、最初のView Controllerでホームページが表示されます。それ以外の場合は、ログインダイアログが表示されます。(セルフ topViewController を使用)

すべてが正常に動作しているようですが、私が抱えている問題は、ホームビューコントローラーにいるときです

メニュー アイコン (プログラムで追加したもの) をクリックするとメニューが表示されますが、もう一度クリックして閉じても何も起こらず、メニューは表示されたままです。

NSLog を追加したところ、正しいメソッドを呼び出していることがわかりました

- (IBAction)revealSidebar
{
 NSLog(@"reveal ");
    [self.slidingViewController anchorTopViewTo:ECRight];

}

ただし、メニュー自体は非表示になりません。

アイデアを得るためにいくつかのスクリーンショットを添付しました。

NSLog(@"ここ");

4

2 に答える 2

1

ECSlidingViewController は、(特に) 次の通知を投稿します。

/** Notification that gets posted when the underLeft view will appear */
extern NSString *const ECSlidingViewUnderLeftWillAppear;

/** Notification that gets posted when the underLeft view will disappear */
extern NSString *const ECSlidingViewUnderLeftWillDisappear;

これらの通知を受け取るように登録してから、次のようなハンドラー メソッドを実装できます。

- (void)handleMenuDidShowNotification:(NSNotification *)notification
{
    [self.menuItem setAction:@selector(closeMenu:)];
}

- (void)handleMenuDidHideNotification:(NSNotification *)notification
{
    [self.menuItem setAction:@selector(openMenu:)];
}

- (void)closeMenu:(id)sender
{
    [self.slidingViewController anchorTopViewTo:ECRight];
}
- (void)openMenu:(id)sender
{
    [self.slidingViewController resetTopView];
}
于 2013-06-20T19:25:48.363 に答える