0

在我的项目中我只有一个窗口,在那个窗口中我只有一个自定义视图,仅此而已。在该自定义视图中,我正在加载一个默认视图,而在该默认视图中,我在那里有一个 Button。当执行该按钮 IBAction 时,必须离开当前的自定义视图,并且必须在该窗口的同一自定义视图中加载新视图。

对于这些我尝试这样,我的应用程序委托是我的窗口控制器,因为我声明了一个全局变量并编写了 KVO 来观察它的值何时发生变化。在那种观察方法中,我试图根据我的要求基于该全局变量中的值加载不同的 xib(自定义视图)。

除了这些,我还有不同的 ViewController 来控制不同的视图。在该视图控制器类中,我使用 AppDelegate 类的对象将新值加载到该全局变量中。

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{    
    NSLog(@"entered into key value observing");
    if ([viewName isEqualToString:@"LoginView"]) {
        NSLog(@"Dont change the current view");
    } else {
        NSLog(@"Load new view in customView");
        [self loadNewView];
    }
}

-(void)loadNewView
{
    NSLog(@"entered into login in method");
    [[_viewController view] removeFromSuperview];
    _viewController=[[NSViewController alloc] initWithNibName:@"NewView" bundle:nil];

    [self.window setContentSize:_viewController.view.frame.size];
    [_customView addSubview:[_viewController view]];
    NSLog(@"at final step");
}

控制从 ViewController 类移动到 AppDelegate 并且它也进入了该 KVO 方法,它正在执行我希望它执行的每一行。但它不影响输出结果。

据我所知,它通过使用 AppDelegate 的对象来执行 ViewController 类本身的所有事情。所以它不影响在该窗口中加载 CustomView 中的视图。

任何人都请建议我一些解决这些问题的解决方案......

4

1 回答 1

0

问题不在上述问题中显示的代码中。

在上面的 NSViewController 代码实例中,为了相同的目的一次又一次地创建。与此同时,尝试使用 Shared 实例在 ViewController 类中创建 appDeligate 的对象。

于 2013-05-08T09:12:07.753 回答