0

在我的项目,我只有一个窗口,在该窗口中我只有一个自定义视图,没有什么比这其他。在该自定义视图中,我加载了一个默认视图,并且在该默认视图中,我在那里有一个Button。当执行该按钮IBAction时,当前的自定义视图必须去并且新的视图必须在该窗口的相同自定义视图中加载。加载在一个单一的自定义视图不同的观点看待

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

除了这些,我有不同的ViewControllers来控制不同的看法。在该视图控制器类中,我使用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的对象执行该视图控制器类本身每一件事情。所以它不影响在该窗口中的CustomView中加载视图。

将任何一个请建议我一些解决方案来解决这些........

+0

请你的意思,通过更详细的描述,“但它不会影响输出结果。” – 2013-05-03 20:42:53

+0

其实我的问题是,意见不定制加载查看我的解决方案来的任何方式。 非常感谢你。 – KrishnaTeja 2013-05-08 09:04:55

回答

0

问题不在于什么是在上述问题中的代码。

在NSViewController的上面的代码实例为同样的目的连连创建。除此之外,还尝试使用Shared实例在ViewController类中创建appDeligate对象。

相关问题