0

RECurtainViewControllerを使用して、新しいViewControllerに移行しています。アプリデリゲートで、ナビゲーションバーの外観を設定しました。

[[UINavigationBar appearance] setTitleTextAttributes: @{
                                UITextAttributeTextColor: [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0],
                          UITextAttributeTextShadowColor: [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8],
                         UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],
                                     UITextAttributeFont: [UIFont fontWithName:@"Helvetica" size:20.0f]
     }];

ナビゲーションバー付きのルートビューコントローラーが正しく表示されます。ただし、次を使用して新しいViewControllerを導入すると次のようになります。

DemoViewController *test = [[DemoViewController alloc] init];
[self curtainRevealViewController:test
                  transitionStyle:RECurtainTransitionHorizontal];

UINavigationBarの外観はデフォルトに戻されます。カスタムの外観を維持する方法はありますか?

編集:

DemoViewControllerが表示されたときに、コンソールにもこの警告が表示されることに気付きました。

Warning: Attempt to present <DemoViewController: 0x1ddaae70> on <ViewController: 0x1e892040> whose view is not in the window hierarchy!

ただし、ViewControllerは引き続き表示されます。

4

1 に答える 1

0

DemoViewControllerのviewDidLoadメソッドに移動し、実際のnavBarインスタンスに属性を割り当てることで、これを解決することになりました。

[self.navBar setTitleTextAttributes: @{
                                UITextAttributeTextColor: [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0],
                          UITextAttributeTextShadowColor: [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8],
                         UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],
                                     UITextAttributeFont: [UIFont fontWithName:@"Helvetica" size:20.0f]
     }];

なぜこれをしなければならないのかわかりませんが、うまくいくようです。

于 2013-01-18T20:21:51.527 に答える