我正在使用this library在我的应用程序中实现菜单。如果我删除该应用并运行它,它会成功显示主页上的导航栏。但是,如果我退出应用程序而不注销并再次运行它,它不会显示导航栏。
现在我明白了NavigationController
的结构,它是如何堆积ViewControllers
的。
以下是我在AppDelegate.m
中所做的操作,以便在我的HomeViewController
我的RootViewController
如果用户尚未注销帐户。导航栏在第一次运行后没有显示
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
if([[NSUserDefaults standardUserDefaults]objectForKey:USERID] == nil)
{
NSLog(@"User is not logged in");
}
else
{
NSLog(@"User ID: %@",[[NSUserDefaults standardUserDefaults]objectForKey:USERID]);
HomeViewController *loginController= (HomeViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
self.window.rootViewController=loginController;
}
return YES;
}
和这里是我在viewDidLoad
做我HomeViewController
:
- (void)viewDidLoad
{
[super viewDidLoad]; self.rootNav = (CCKFNavDrawer *)self.navigationController;
[self.rootNav setCCKFNavDrawerDelegate:self];
self.navigationController.navigationBarHidden=NO;
self.navigationItem.title = @"Recent Posts";
self.navigationItem.hidesBackButton = YES;
}
而且因为它是在library的演示中提到我用CCKFNavDrawer
作为我的班我NavigationController
。
我想我已经分享了足够的东西来解释我的问题。让我知道是否有更多的信息需要。那么,我应该在这里做什么?
我试过,但它崩溃的应用程序。如果你可以看到我的'ViewDidLoad'方法,那么就有一个名为'setCCKFNavDrawerDelegate'的'Delegate',它将'HomeViewController'设置为'rootNav'。其中'rootNav'是'CCKFNavDrawer'类的一个属性。查看库链接了解更多信息。应用程序崩溃与此错误:终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:' - [UINavigationController setCCKFNavDrawerDelegate:]:无法识别的选择器发送到实例' –
我会研究它! –
我更新了我的答案,尝试 –