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