0

我有不同的 xib 文件,它们附加了 NSViewController。(下面的截图)

在此处输入图像描述

一个名为 StartMenuViewController 的 xib 文件,它有一个按钮。我想单击该按钮并将视图更改为 DetectingUSBViewController。(下面的屏幕截图)该按钮的 IBAction 位于 StartMenuViewController.m 文件中。

在此处输入图像描述

我使用 AppController.m 来控制我的主 xib 视图。(NSWindow + NSView)(下面的屏幕截图) 在此处输入图像描述

当应用程序运行时,我尝试通过在我的 AppController.m 文件中执行以下操作来初始化 StartMenuViewController 拳头。

-(void)awakeFromNib{   
    [self initialize];
}

-(void) initialize
{
    @autoreleasepool {
        //mainViewController is a NSViewController and _mainView is a NSView which connect with Custom View in main xib
        self.mainViewController = [[[StartMenuViewController alloc]initWithNibName:StartMenuView bundle:nil]autorelease];
        [_mainView addSubview:[_mainViewController view]];
    }
}

它工作正常,首先会在窗口上显示 StartMenuViewController.xib,但我不知道单击按钮后如何更改视图(查找 USB 驱动器)。我希望将当前视图更改为 DetectingUSBViewController.xib。

4

3 回答 3

0

加载DetectingUSBViewController 现在添加或替换视图,就像您要添加/替换的视图startMenuViewController一样 。DetectingUSBViewController* v1 = [[ViewCont1 alloc] initWithNibName:@"ViewCont1" bundle:nil];[v1 view]

于 2013-06-01T10:07:08.103 回答
0
  1. 您需要连接您的按钮以发送 IBAction
  2. 您需要一个“用于 DetectingUSBViewController.xib 的视图”=> 一种方法(类似 iOS)是使用 ViewController。子类 NSViewController 然后分配初始化一个 DetectingUSBViewController
  3. 添加视图。不要展示 VC(因为 OSX 中没有这样的东西)

//button click action
- (IBAction)usbButton:(UIButton *)sender {
     //! Retain the VC
     Self.detectingUSBViewController = [[DetectingUSBViewController alloc] initWithNibName:@"DetectingUSBView" bundle:nil];

     //add the view
     [_mainView addSubview:[_detectingUSBViewController view]];

}

于 2013-06-01T10:18:37.847 回答
0

最简单的方法,假设您已正确连接 USB 按钮,请执行以下操作:

- (IBAction)usbButton:(UIButton *)sender {

    DetectingUSBViewController *second = [[DetectingUSBViewController alloc] initWithNibName:@"DetectingUSBView" bundle:nil];
    [self presentViewController:second animated:YES completion:nil];

}
于 2013-05-30T17:06:18.013 回答