最初我在应用程序主窗口上有自己的设置,即图像视图(用于背景),在其上我有一组按钮。现在当用户点击按钮时,启动相应的课程,即用户被导航到相应的屏幕,即我将视图添加到窗口的内容视图....
[self.window.contentView addSubview:self.lessonScreen.view];
实际上我知道有一种在窗口上进行视图(自定义视图)的方法,继续添加我们的视图(用于导航)。然后,为了导航到主屏幕(窗口),我们可以简单地隐藏该视图。但我遵循通过窗口内容视图添加视图的方法。
然而,视图得到了很好的补充,但我无法导航到主屏幕,我尝试了各种方法,以下是我遵循的方法之一:
[[window contentView] setHidden:YES];
现在发生的事情是窗口变成空白,主视图也消失了。
我还尝试在Windows内容视图子视图中枚举视图并删除相同的内容,但是我遇到了崩溃,在这种情况下也会出现更多相同的空白屏幕:(
我也遇到了问题here和there,这些问题并没有解决我的问题。
有人可以建议我从主窗口中删除内容视图以跳转到我的主屏幕,因为我有用于用户导航的主菜单按钮。
非常感谢任何帮助,谢谢:)
答案 0 :(得分:0)
将此方法连接到相应的按钮或菜单项
- (IBAction)deliteAllSubviews:(id)sender {
NSArray* views = [[window contentView]subviews];
for (NSView* view in views) {
[view removeFromSuperview];
}
}
答案 1 :(得分:0)
我的基础不合适,之前我没有创建自己的类来处理主视图控制器。这就是事情变得怪异的原因。
通过创建我们自己的NSViewController类来创建我们的主菜单视图,然后通过添加appDelegate文件的- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
方法添加相同的窗口内容视图,即:
self.mainViewController = [[MainViewController alloc]initWithNibName:@"MainViewController" bundle:nil];
self.window.contentView = _mainViewController.view;
既然我们已经开始将自己的视图添加到窗口的内容视图中,为了导航到主屏幕,我们不需要隐藏内容视图,而是将我们的主视图指定为窗口的内容视图:
-(IBAction)topicButton:(id)sender
{
[AppDelegate sharedInstance].mainViewController = [[MainViewController alloc]initWithNibName:@"MainViewController" bundle:nil];
[[AppDelegate sharedInstance].window setContentView:[AppDelegate sharedInstanceofAppDelegate].mainViewController.view];
}
注意:这里[AppDelegate sharedInstance]是我们的app委托类的实例,即:
+(AppDelegate *)sharedInstance
{
if (!sharedAppDelegate) {
sharedAppDelegate = (AppDelegate *)[[NSApplication sharedApplication]delegate];
}
return sharedAppDelegate;
}
就是这样,当点击主题或主菜单按钮时,我们现在可以将用户导航到主屏幕:)
希望它有所帮助,感谢关注的一方和所有人:)