【问题标题】:Button to the same view ios按钮到相同的视图 ios
【发布时间】:2015-08-22 12:24:31
【问题描述】:
我是 iPhone 编程新手。
我有一个使用 Storyboard 制作的应用,它有多个视图。在这两个视图中是相同的,在我的应用程序底部都有 5 个静态按钮。我想对所有按钮进行编码,以便在单击时转到相同的视图。最好的方法是什么?
我一直在为一个按钮创建一个类,并且我正在尝试编写代码以在单击后转到视图。我在下面只找到了这段代码,但在这种情况下,我必须对按钮所在的所有视图进行 segue
- (IBAction)buttonPressed:(UIButton *)sender
{
[self performSegueWithIdentifier:@"MySegueIdentifier" sender:sender];
}
【问题讨论】:
标签:
ios
objective-c
button
view
【解决方案1】:
@property (nonatomic, weak) IBOutlet UIButton *buttonA;
@property (nonatomic, weak) IBOutlet UIButton *buttonB;
- (void)viewDidLoad {
[super viewDidLoad];
[self.buttonA addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.buttonB addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
}
【解决方案2】:
如果您希望在视图中具有通用行为,您可能需要实现父 UIViewController,您将在其中放置您的 IBAction:
- (IBAction)buttonPressed:(UIButton *)sender {
UIButton *b = (UIButton *)sender;
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *nextViewController = nil;
switch (b.tag){
case 0:
nextViewController = [sb instantiateViewControllerWithIdentifier:@"viewController0"];
break;
// load the appropriate viewController according to button tag
default:
break;
}
if (nextViewController){
[self.navigationController performSegueWithIdentifier:@"MySegueIdentifier" sender:sender];
}
}
我建议您查看UITabBarController,这可能是您需要的控制器。
【解决方案3】:
我认为你想要的一切都只是UITabViewController。
如果你想一直在底部固定 5 个按钮,UITabViewController 可以满足你的要求。
如果你只想为每个按钮添加相同的事件,你可以参考这张图片:
你可以只连接事件和目标代码。