我有一个 Split View应用程序,在详细 View 中有一个按钮,单击该按钮后,用户将进入所选图像的全屏 View 。
我知道我需要一个新的 nib 文件和 View Controller ,但我不确定如何将这些新文件与我现有的 RootViewController 和 DetailViewController 文件连接起来。
我知道这真的很含糊,但非常感谢任何帮助。
最佳答案
只要您移动到单个 View (而不是另一个 Split View),您应该只需要一个 View Controller 。如果我明白你在做什么,那么进展应该是这样的:
- 使用关联的 .xib 文件创建一个新的 View Controller 。
在 DetailViewController.h 中声明新 View Controller 的特定实例,在本例中称为 newViewController,并在 DetailViewController.m 中合成它
@interface DetailedViewController { NewViewController *newViewController; } @property (nonatomic, retain) NewViewController *newViewController; @end
将您的 IBAction 添加到 DetailViewController 的头文件中,这将是负责实际触发 View 切换的函数
在 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]; }
然后在 viewDidLoad 函数内的 DetailViewController.m 文件中添加以下内容:
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemAdd target:self action:@selector(switchToNewView:)]; self.navigationItem.rightBarButtonItem = addButton; [addButton release];
如果您选择通过 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/