【问题标题】:iOS- How to add buttons above UISplitViewController Detail ViewiOS-如何在 UISplitViewController 详细视图上方添加按钮
【发布时间】:2014-10-13 07:23:01
【问题描述】:

我正在使用 UISplitViewController,左侧显示菜单,右侧显示详细视图。

我希望能够在详细视图上方添加按钮(屏幕右侧的 3 个按钮),如下图所示:

--已编辑--

所以我的问题是:

  1. 如何在详细视图上方添加按钮,如上图?
  2. 点击按钮时,如何显示允许用户输入信息的新屏幕。

【问题讨论】:

  • 点击按钮时使用 [self presentViewController: animated: completion:] 方法来呈现一个不同的viewconroller。
  • 对不起,也许我不清楚。如何在详细视图控制器上方添加这些按钮?

标签: ios uisplitviewcontroller


【解决方案1】:

1.最好的方法是使用detailViewControllernavigationBar并添加UIBarButtonItems

是这样的:

在您的DetailViewControllerviewDidLoadviewDidAppear 中添加三个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)];

然后我们将按钮添加到我们的DetailViewControllernavigationItem 喜欢:

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
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多