Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 基于自定义视图中的按钮在单个自定义视图中加载不同视图_Objective C_Cocoa_Nsview_Key Value Observing_Nsviewcontroller - Fatal编程技术网

Objective c 基于自定义视图中的按钮在单个自定义视图中加载不同视图

Objective c 基于自定义视图中的按钮在单个自定义视图中加载不同视图,objective-c,cocoa,nsview,key-value-observing,nsviewcontroller,Objective C,Cocoa,Nsview,Key Value Observing,Nsviewcontroller,在我的项目中,我只有一个窗口,在该窗口中,我只有一个自定义视图,除此之外没有其他视图。在那个自定义视图中,我加载了一个默认视图,在那个默认视图中,我有一个按钮。执行该按钮iAction时,当前自定义视图必须转到,新视图必须加载到该窗口的同一自定义视图中 我试着这样做, 我的应用程序委托是我的窗口控制器,因为我声明了一个全局变量并编写了KVO,以便在其值发生更改时进行观察。在这种观察方法中,我试图根据基于全局变量值的需求加载不同的xib(自定义视图) 除了这些,我还有不同的视图控制器来控制不同的视

在我的项目中,我只有一个窗口,在该窗口中,我只有一个自定义视图,除此之外没有其他视图。在那个自定义视图中,我加载了一个默认视图,在那个默认视图中,我有一个按钮。执行该按钮iAction时,当前自定义视图必须转到,新视图必须加载到该窗口的同一自定义视图中

我试着这样做, 我的应用程序委托是我的窗口控制器,因为我声明了一个全局变量并编写了KVO,以便在其值发生更改时进行观察。在这种观察方法中,我试图根据基于全局变量值的需求加载不同的xib(自定义视图)

除了这些,我还有不同的视图控制器来控制不同的视图。在该视图控制器类中,我使用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中视图的加载


有谁能给我建议一些解决这些问题的方法吗……。

问题不在代码中,上面的问题显示了什么


在上面的代码中,NSViewController的实例正在为相同的目的一次又一次地创建。此外,请尝试使用共享实例在ViewController类中创建appDeligate对象。

请更详细地描述您所说的“但它不影响输出结果”的意思。实际上,我的问题是,视图没有以任何方式加载到自定义视图中,我得到了解决方案。非常感谢。