gpt4 book ai didi

ios - 带有在另一个类中声明的 pushViewController 的 UIButton

转载 作者:行者123 更新时间:2023-11-28 18:57:22 28 4
gpt4 key购买 nike

大家好,我正在尝试添加一个自定义导航栏,该导航栏在不同的类中声明,并且有一个按钮可以执行推送操作。我最初的问题是,当应用程序由于 uinavigationconreoller 崩溃而推送 View 时,我以某种方式修复了它,现在它也崩溃了。这是我的代码:

#import "HomeViewController.h"

@implementation HomeViewController

-(void)viewDidLoad
{
[super viewDidLoad];

TopBar *navBar = [TopBar new];
[navBar addTopBarToScreen:self.view];
}

-(void)productSheetsButtonFunction
{
MainViewController* productSheetsView = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
[self.navigationController pushViewController:productSheetsView animated:YES];
}

这是我的类,包含我调用的方法

-(void)addTopBarToScreen:(UIView *)screen
{
//create the top bar
UIView *topBar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 64.f)];
topBar.backgroundColor = [UIColor whiteColor];
[screen addSubview:topBar]


//add the productSheetsButton
UIButton *productSheetsButton = [[UIButton alloc] initWithFrame:CGRectMake(96.f, 14.f, 36.f, 36.f)];
productSheetsButton.backgroundColor = [UIColor clearColor];
[productSheetsButton setBackgroundImage:[UIImage imageNamed:@"ingredients.png"] forState:UIControlStateNormal];
[productSheetsButton setBackgroundImage:[UIImage imageNamed:@"ingredients_active.png"] forState:UIControlStateHighlighted];
[productSheetsButton addTarget:self action:@selector(productSheetsButtonFunction) forControlEvents:UIControlEventTouchUpInside];
[topBar addSubview:productSheetsButton];
}

我知道问题出在我将按钮的目标添加到 self 时

最佳答案

可能 addTopBarToScreen 在另一个类中,它与 HomeViewController 无关并且没有定义 productSheetsButtonFunction。您可以通过多种方式做到这一点,但最简单的方法是重用您的结构,即在 addTopBarToScreen 方法中传递目标,如下所示:

- (void)addTopBarToScreen:(UIView *)screen target:(id)target 

然后,在您的 addTarget 调用中传递该目标。

 [productSheetsButton addTarget:target 
action:@selector(productSheetsButtonFunction)
forControlEvents:UIControlEventTouchUpInside];

最后,在您的 HomeViewController 中,您可以这样调用它:

[navBar addTopBarToScreen:self.view target:self];

关于ios - 带有在另一个类中声明的 pushViewController 的 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30868464/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com