确定。我有一个大问题。我最近使用Cocoapods下载了FRLayeredNavigationController。在使用它并简单地使用UINavigationController
之前,一切正常。现在它只是一个大混乱。这是运行应用程序后的内容:
这是我的代码: 的 AppDelegate.h
#import <UIKit/UIKit.h>
#import "FRLayeredNavigationController/FRLayeredNavigation.h"
@interface TasksAppDelegate : UIResponder <UIApplicationDelegate>
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;
@property (strong, nonatomic) UINavigationController *navigationController;
@property (strong, nonatomic) FRLayeredNavigationController *layeredNavigationController;
@property (strong, nonatomic) UIWindow *window;
@end
AppDelegate.m
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
ToDoTableViewController *tableViewController = [[ToDoTableViewController alloc]init];
self.layeredNavigationController = [[FRLayeredNavigationController alloc]initWithRootViewController:tableViewController];
tableViewController.managedObjectContext = self.managedObjectContext;
self.window.rootViewController = self.layeredNavigationController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
在我的控制台中,我得到以下内容:
DEBUG: self: 'ToDoTableViewController: 0x9537600', self.parentViewController: '(null)'
所以基本上我能说的是,由于某种原因FRLayeredNavigationController
没有被创建,或者没有创建托管对象上下文。我不知道为什么。从字面上看,如果我将FRLayeredNavigationController
更改为UINavigationController
,一切正常&gt;。&gt;
如果它有所不同,TableViewController
不是UITableViewController
,而是UIViewController
,其中包含tableView。
答案 0 :(得分:0)
此处未生成ToDoTableViewController
。 ManagedContext似乎没有导致这种情况。在你的ToDoTableViewController
中,你有一个名为'parentViewController'的属性,你试图访问它吗?
答案 1 :(得分:0)
由于你的断点:也许在Xcode中检查随机断点:在Xcode中按⌘+ 6 查看所有断点。然而,日志消息来自FRLayeredNavigationController中的已知限制:在视图控制器(self.layeredNavigationItem
或someViewController.layeredNavigationItem
)之前,您无法使用self
(或someViewController
)实际上推到了屏幕上。
FRLayeredNavigationController的documentation on layeredNavigationItem
提到:
警告:在屏幕上显示视图控制器之前,此属性为nil。要在出现在屏幕上之前配置FRLayeredNavigationItem,请使用以下方法:
[FRLayeredNavigationController initWithRootViewController:configuration:] [FRLayeredNavigationController pushViewController:inFrontOf:maximumWidth:animated:configuration:]
之所以(我是FRLayeredNavigationController的开发人员)是layeredNavigationItem
是通过遍历视图控制器层次结构来实现的,在推送视图控制器之前,它根本不在层次结构中。因此,parentViewController
为nil
。