Objective c 基于自定义视图中的按钮在单个自定义视图中加载不同视图
在我的项目中,我只有一个窗口,在该窗口中,我只有一个自定义视图,除此之外没有其他视图。在那个自定义视图中,我加载了一个默认视图,在那个默认视图中,我有一个按钮。执行该按钮iAction时,当前自定义视图必须转到,新视图必须加载到该窗口的同一自定义视图中 我试着这样做, 我的应用程序委托是我的窗口控制器,因为我声明了一个全局变量并编写了KVO,以便在其值发生更改时进行观察。在这种观察方法中,我试图根据基于全局变量值的需求加载不同的xib(自定义视图) 除了这些,我还有不同的视图控制器来控制不同的视图。在该视图控制器类中,我使用AppDelegate类的对象将新值加载到该全局变量中Objective c 基于自定义视图中的按钮在单个自定义视图中加载不同视图,objective-c,cocoa,nsview,key-value-observing,nsviewcontroller,Objective C,Cocoa,Nsview,Key Value Observing,Nsviewcontroller,在我的项目中,我只有一个窗口,在该窗口中,我只有一个自定义视图,除此之外没有其他视图。在那个自定义视图中,我加载了一个默认视图,在那个默认视图中,我有一个按钮。执行该按钮iAction时,当前自定义视图必须转到,新视图必须加载到该窗口的同一自定义视图中 我试着这样做, 我的应用程序委托是我的窗口控制器,因为我声明了一个全局变量并编写了KVO,以便在其值发生更改时进行观察。在这种观察方法中,我试图根据基于全局变量值的需求加载不同的xib(自定义视图) 除了这些,我还有不同的视图控制器来控制不同的视
-(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对象。请更详细地描述您所说的“但它不影响输出结果”的意思。实际上,我的问题是,视图没有以任何方式加载到自定义视图中,我得到了解决方案。非常感谢。