iOS-如何在 UISplitViewController 详细视图上方添加按钮
Posted
技术标签:
【中文标题】iOS-如何在 UISplitViewController 详细视图上方添加按钮【英文标题】:iOS- How to add buttons above UISplitViewController Detail View 【发布时间】:2014-10-13 07:23:01 【问题描述】:我正在使用 UISplitViewController,左侧显示菜单,右侧显示详细视图。
我希望能够在详细视图上方添加按钮(屏幕右侧的 3 个按钮),如下图所示:
--已编辑--
所以我的问题是:
-
如何在详细视图上方添加按钮,如上图?
点击按钮时,如何显示允许用户输入信息的新屏幕。
【问题讨论】:
点击按钮时使用 [self presentViewController: animated: completion:] 方法来呈现一个不同的viewconroller。 对不起,也许我不清楚。如何在详细视图控制器上方添加这些按钮? 【参考方案1】:1.最好的方法是使用detailViewController
的navigationBar
并添加UIBarButtonItems
是这样的:
在您的DetailViewController
的viewDidLoad
或viewDidAppear
中添加三个barButtonItems
。
由于您的图像包含按钮的图像,因此下面的代码用于创建带有图像的barButtonItem
。
UIBarButtonItem *button1 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"1st button image"] style:UIBarButtonItemStylePlain target:self action:@selector(yourActionMethod)];
UIBarButtonItem *button2 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"2nd button image"] style:UIBarButtonItemStylePlain target:self action:@selector(yourActionMethod)];
UIBarButtonItem *button3 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"3rd button image"] style:UIBarButtonItemStylePlain target:self action:@selector(yourActionMethod)];
然后我们将按钮添加到我们的DetailViewController
的navigationItem
喜欢:
self.navigationItem.rightBarButtonItems = @[button1,button2,button3];
2.现在当点击按钮时,action:@Selector(yourActionMethod)
会被调用,从那里我们可以显示新屏幕。
让我们深入研究代码吧。 . .
要显示新屏幕,我们可以使用splitViewController
's:
- (void)showDetailViewController:(UIViewController *)vc sender:(nullable id)sender NS_AVAILABLE_ios(8_0);
我们的函数/方法块将如下所示
-(void)yourActionMethod
UIViewController * yourNewViewController = //load your view controller here
[self showDetailViewController:yourNewViewController sender:self];
【讨论】:
【参考方案2】:您可以简单地创建 UIBarButton 并添加在当前 splitVC 上显示其他 VC 的功能,就像您使用导航栏一样。
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"delete" style:UIBarButtonItemStylePlain target:self action:@selector(youfunction1)];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"delete" style:UIBarButtonItemStylePlain target:self action:@selector(youfunction2)];
UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithTitle:@"delete" style:UIBarButtonItemStylePlain target:self action:@selector(youfunction3)];
self.navigationController.navigationItem.rightBarButtonItems = @[item1,item2,item3];
【讨论】:
【参考方案3】:您可以直接在 UIViewController 故事板文件上添加按钮并将那里的事件连接到控制器。如果您想打开新屏幕以添加记录,那么您可以创建一个控制器并从那里展示它。
*
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(aMethod:)forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];
*
aMethod 将被调用,你可以在这里创建你的控制器对象并展示它。
【讨论】:
嗨。我没有使用故事板。我以编程方式创建了 UISplitViewController 您好 [view addSubview:button] 中的视图是什么?我应该将按钮添加到 UISplitViewController barButtonItem 吗? View 是您的控制器视图。UISplitViewController 有两个 .viewControllers 所以将此行添加到第二个控制器 viewDidLoad以上是关于iOS-如何在 UISplitViewController 详细视图上方添加按钮的主要内容,如果未能解决你的问题,请参考以下文章
UISplitViewController 和单元格取消选择