0

我有一个 UIToolbarButton,它有一个 UIButton 来保存图像。现在,当我单击此 UIToolbarButton 时,我想在当前视图中打开另一个视图。

我的代码:

- (IBAction)btnNowPlaying:(id)sender
{
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self
                                   action:@selector(openPlaying:)];
    [self.view addGestureRecognizer:tap];
}

- (void)openPlaying:(UIGestureRecognizer *)sender
{
    NewMainViewController *vc  = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"Center"];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController * npvc = [storyboard instantiateViewControllerWithIdentifier:@"NowPlayingVC"];
    [vc.containerView addSubview:npvc.view];
}

这个动作,btnNowPlaying 在 UIButton 上。

4

2 回答 2

1

听起来您只是想从一个视图控制器导航到另一个。只需从您的条形按钮项控制拖动到您想要在情节提要中导航到的视图控制器。然后,单击两个视图控制器之间的 segue 并在属性检查器中设置其标识符。之后,您需要做的就是实施prepareForSegue:

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"THE_IDENTIFIER_YOU_ENTERED_IN_THE_ATTRIBUTES_INSPECTOR"]) {
        if ([segue.destinationViewController isKindOfClass:[NEWViewController class]]) {
            NEWViewController *vc = (NEWViewController *)segue.destinationViewController;
            // Any preparation you need to do for next view controller
            vc.someProperty = someValue;
        }
    }
}

在当前视图控制器中打开一个新的视图控制器有点奇怪。为什么不坚持下去呢?

另一种选择是分配初始化 UIView 而不是视图控制器,然后简单地addSubview:.

于 2014-09-11T06:33:26.383 回答
0

首先,您可以使用UIBarButton带有样式和设置器 Image 属性的默认项目,Custom而不是创建UIButton.

您不需要创建额外的手势识别器。如果您在 Interface Builder 中将 IBAction 与按钮连接,则可以将转换代码放在 btnNowPlaying 方法中。

另一种方法是创建 IBOutlet,将其与您的按钮连接并在- (void)viewDidLoad方法中创建 UIGestureRecognizer。

于 2014-09-11T05:56:58.700 回答