iOS - 添加新 View /按下按钮切换 View

标签 ios view viewcontroller

我有一个 Split View应用程序,在详细 View 中有一个按钮,单击该按钮后,用户将进入所选图像的全屏 View 。

我知道我需要一个新的 nib 文件和 View Controller ,但我不确定如何将这些新文件与我现有的 RootViewController 和 DetailViewController 文件连接起来。

我知道这真的很含糊,但非常感谢任何帮助。

最佳答案

只要您移动到单个 View (而不是另一个 Split View),您应该只需要一个 View Controller 。如果我明白你在做什么,那么进展应该是这样的:

  1. 使用关联的 .xib 文件创建一个新的 View Controller 。
  2. 在 DetailViewController.h 中声明新 View Controller 的特定实例,在本例中称为 newViewController,并在 DetailViewController.m 中合成它

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

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

    (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];
    }
    
  5. 然后在 viewDidLoad 函数内的 DetailViewController.m 文件中添加以下内容:

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

这就是总体思路。希望对您有所帮助!

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

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

关于iOS - 添加新 View /按下按钮切换 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6946963/

相关文章:

ios - Firebase 值未更新?

javascript - -- 存储我在 React 中使用的 DOM 元素,这样我就不会一直拉取它们?

ios - Swift 将计算出的数据传递回之前的 View Controller

ios - 覆盖已经显示的本地通知

ios - 了解如何使用 Objective-C 在 iOS 上制作简单的数学游戏

ios - 使用 AWS Cognito 在 iOS 应用程序中获取描述性登录错误消息

javascript - Rails 3 个不同的自动完成字段

sql - 通过使用 VIEW 而不是 JOIN,我可以获得任何性能优势吗?

ios - 为 iOS 应用程序进行 UX 的最佳且最简单的方法

iphone - 使用 Storyboard在 View Controller 之间传递对象 (XCode 4/iOS 5)