0

最初,我在应用程序主窗口上有自己的设置,即图像视图(用于背景),在它上面我有一组按钮。现在,当用户点击按钮时,将启动相应的课程,即用户被导航到相应的屏幕,即我将视图添加到窗口的内容视图......

[self.window.contentView addSubview:self.lessonScreen.view];

实际上我知道有一种方法可以在窗口上获取视图(自定义视图),并继续向其中添加我们的视图(用于导航)。然后导航到主屏幕(窗口),我们可以简单地隐藏该视图。但我遵循通过窗口的内容视图添加视图的方法。

但是视图添加得很好,但我无法导航到主屏幕,我尝试了各种方法,以下是我遵循的方法之一:

[[window contentView] setHidden:YES];

现在发生的情况是窗口变为空白,主视图也消失了。

我还尝试在 Windows 内容视图子视图中枚举视图并将其删除,但我遇到了崩溃,并且在这种情况下也会出现更多相同的空白屏幕:(

我也在这里那里遇到了问题,但这些问题并没有解决我的问题。

有人可以建议我一种从主窗口中删除内容视图的方法,以便跳转到我的主屏幕,因为我有用于用户导航的主菜单按钮。

非常感谢任何帮助,谢谢:)

4

2 回答 2

0

将此方法连接到适当的按钮或菜单项

- (IBAction)deliteAllSubviews:(id)sender {

    NSArray* views = [[window contentView]subviews];

    for (NSView* view in views) {   
        [view removeFromSuperview];
    }
}
于 2014-07-02T14:33:06.260 回答
0

我的基础基础不正确,之前我没有创建自己的类来处理主视图控制器。这就是事情变得奇怪的原因。

只需通过创建我们自己的 NSViewController 类来创建我们的主菜单视图,然后通过添加- (void)applicationDidFinishLaunching:(NSNotification *)aNotification我们的 appDelegate 文件的方法来添加与我们窗口的内容视图相同的内容,即:

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] 是我们的应用委托类的实例,即:

+(AppDelegate *)sharedInstance
{
    if (!sharedAppDelegate) {
        sharedAppDelegate = (AppDelegate *)[[NSApplication sharedApplication]delegate];
    }
    return sharedAppDelegate;
}

就是这样,我们现在可以在单击主题或主菜单按钮时将用户导航到主屏幕:)

希望它有所帮助,感谢一个和所有的关注:)

于 2014-07-08T09:55:36.043 回答