iOS - 添加新视图/按下按钮切换视图

ebe*_*eth 3 view viewcontroller ios

我有一个拆分视图应用程序,在详细信息视图中有一个按钮,单击该按钮将使用户进入所选图像的全屏视图.

我知道我需要一个新的nib文件和视图控制器,但我不知道如何将这些新文件与我现有的RootViewController和DetailViewController文件连接起来.

我知道这真的很模糊,但任何帮助都会非常感激.

Kar*_*y S 6

只要您移动到单个视图(如在另一个拆分视图中),您应该只需要一个视图控制器.如果我理解你在做什么,那么进展应该是这样的:

  1. 使用关联的.xib文件创建新的视图控制器.
  2. 在DetailViewController.h中声明新视图控制器的特定实例,在本例中称为newViewController,并在DetailViewController.m中合成它.

    @interface DetailedViewController
    {    
        NewViewController *newViewController;
    }
    @property (nonatomic, retain) NewViewController *newViewController;
    @end
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将您的IBAction添加到DetailViewController的头文件中,这将是负责实际触发视图切换的函数

  4. 在DetailViewController.m文件中实现视图切换操作,应该如下所示:

    (IBAction)switchToNewView:(id)sender
    {
        if (newViewController == nil)
        {
            NewViewController *newViewController =
              [[NewViewController alloc] 
                initWithNibName:@"NewViewController"
                bundle:[NSBundle mainBundle]];
    
            self.newViewController = newViewController;
        }
    
        // How you reference your navigation controller will
        // probably be a little different
        [self.navigationController
           pushViewController:self.newViewController
           animated:YES];
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 然后在viewDidLoad函数里面的DetailViewController.m文件中添加以下内容:

    UIBarButtonItem *addButton =
      [[UIBarButtonItem alloc]
        initWithBarButtonSystemItem: UIBarButtonSystemItemAdd
        target:self action:@selector(switchToNewView:)];
    self.navigationItem.rightBarButtonItem = addButton;
    [addButton release];
    
    Run Code Online (Sandbox Code Playgroud)
  6. 如果您选择通过UIButton实现此选项,则另外一个选项是在NewViewController.xib上的Interface Builder中创建按钮,然后选择它,并在Connections检查器中,在"touchUpInside"事件之间创建一个链接和文件所有者,然后选择您的switchToNewView IBAction.这应该完成同样的事情.

这是一般的想法.我希望有所帮助!

编辑:如评论中所述,如果将一个按钮添加为UIBarButton作为导航控制器的一部分,您只需要执行以下操作:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(switchToNewView:)];
self.navigationItem.rightBarButtonItem = addButton;
[addButton release];
Run Code Online (Sandbox Code Playgroud)