【问题标题】:present View Controller on click of Bar Button items单击条形按钮项目时显示视图控制器
【发布时间】:2014-03-14 06:45:47
【问题描述】:

我已经包含了许多 ViewControllers 并且根据要求,所有 ViewControllers 必须在右侧包含两个相同的自定义 BarButton 项目(设置,帮助),所以我创建了一个单独的类扩展 NSObject 并包括里面有两个UIButtons

在所有的 ViewControllers 中,我导入了这个类并像这样设置 barButtons:

    NavigationBarButtonItems *nav=[[NavigationBarButtonItems alloc]init];
    self.navigationItem.rightBarButtonItems = [nav BarButtonItems];

其中,NavigationBarButtonItems 是在 -(NSArray *)BarButtonItems; 方法中包含两个自定义按钮的类。

一切都很完美。但这是问题所在,我为其中一个 barButtons 创建了一个 viewController,比如说,'settings',当设置 barButton 被单击时,我无法弄清楚如何呈现这个 ViewController(settings),因为设置 barButton 是包含在几乎所有的 viewController 中。

帮帮我。谢谢!

【问题讨论】:

  • 在栏按钮单击事件上以模态方式显示设置视图控制器。您还可以在设置视图上提供一个关闭按钮,以关闭该视图控制器

标签: ios iphone uiviewcontroller uibarbuttonitem


【解决方案1】:

在自定义类中创建这样的按钮。

-(void)createSettingbutton:(id)FromClass {

//Create Add category Button

 UIButton *addSettingButton=[UIButton buttonWithType:UIButtonTypeCustom];
addSettingButton.frame=CGRectMake(0, 0, 30, 30);
[addSettingButton setBackgroundImage:[[UIImage alloc]initWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"" ofType:@"png"]] forState:UIControlStateNormal];
**[addSettingButton addTarget:FromClass action:@selector(ButtonAction) forControlEvents:UIControlEventTouchUpInside];**

UIBarButtonItem *_addSettingButton=[[UIBarButtonItem alloc]initWithCustomView:addSettingButton];
[self.navigationItem setRightBarButtonItem:_addSettingButton];

[_addSettingButton release];
_addSettingButton=nil;
}

现在在viewcontroller要添加设置按钮的地方添加以下代码。

[self createSettingbutton:self];//Second self is the parameter which is passed to 'FromClass' Variable.

现在在同一个视图控制器中添加设置按钮的动作

-(void)ButtonAction
    {
      [self.view addSubview:mSettingView.view];
//or
[self.navigationController pushViewController:mSettingView animated:YES]

    }

【讨论】:

  • [self createSettingbutton:self]; -> 您没有在要显示 barButtons 的类中声明 createSettingButton。那么,如何调用 [self methodname] 之类的方法呢?。不应该是这样的:[customClassObject createSettingButton:self];
  • 是的..对不起..应该是这样的:[customClassObject createSettingButton:self];。实际上,我创建了一个 uiviewcontroller 类别作为我的自定义类,所以我写了:[self createSettingbutton:self];.
猜你喜欢
  • 2020-07-26
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多