【发布时间】:2012-05-27 00:56:58
【问题描述】:
在我的 AppDelegate 中,我正在实例化一个 UINavigationController 并将我的“主”视图(我们称之为 MainViewController)添加为导航控制器的根视图控制器。然后将导航控制器作为子视图添加到应用程序委托的窗口,并使窗口可见。即,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// viewController is a property of the app delegate
viewController = [[MainViewController alloc] init];
viewController.context = [self managedObjectContext];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
MainViewController 为某些 NSNotification 添加观察者,这些 NSNotification 由视图控制器的子视图以编程方式实例化并添加为 MainViewController 的子视图。所以,
-
MainViewController(在 UINavigationController 中)
-
子视图控制器
- SubView 发布通知
-
子视图控制器
一旦我将 UINavigationController 添加到组合中,MainViewController 将不再正确处理 SubView 发布的通知。如果我删除 UINavigationController 并简单地将 MainViewController 添加为 AppDelegate 窗口的子视图,则通知将得到正确处理。
我尝试为 SubView 发布的通知之一向 AppDelegate 添加观察者,它会正确处理它,并且在处理该通知时,MainViewController 不为零.
任何指导将不胜感激。如果您需要任何说明,请告诉我。
【问题讨论】:
标签: iphone objective-c cocoa-touch nsnotificationcenter