IOS Segue 在自定义标签栏中不起作用



>我使用 segue 制作我的自定义标签栏,它已成功运行,现在我尝试在标签栏视图控制器上的两个视图控制器之间传递数据

我的标签栏控制器代码

- (void) perform {
    ViewController *ctbcv = (ViewController *)self.sourceViewController;
    UIViewController *dst = (UIViewController *) self.destinationViewController;
    for(UIView *view in ctbcv.placeholder.subviews)
    {
        [view removeFromSuperview];
    }
    ctbcv.currentViewController = dst;
    [ctbcv.placeholder addSubview:dst.view];
}

和续集条件

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"HomeSegue"]
   || [segue.identifier isEqualToString:@"DeveloperSegue"]
   || [segue.identifier isEqualToString:@"DesignerSegue"]|| [segue.identifier isEqualToString:@"btn4"]){
NSLog(@"%lu",(unsigned long)[self.buttons.subviews count]);
for (int i=0; i<[self.buttons.subviews count];i++) {
        UIButton *button = (UIButton *)[self.buttons.subviews objectAtIndex:i];
        [button setSelected:NO];
    }
    UIButton *button = (UIButton *)sender;
    NSLog(@"%ld", (long)button.tag);
     btnclicked = button.tag;
    [button setSelected:YES];
}
}

这段代码运行成功,现在我在第一个视图控制器上创建按钮并为新的视图控制器提供 segue,单击按钮时崩溃。

- (void)viewDidLoad {
[super viewDidLoad];
[btnnext addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
}
-(void) buttonClicked:(UIButton*)sender
{
NSLog(@"you clicked on button %ld", (long)sender.tag);
[self performSegueWithIdentifier:@"MySegue" sender:sender];
 }
 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 {
if ([[segue identifier] isEqualToString:@"MySegue"]) {
          navVC *vc = [segue destinationViewController];
  }
 }

在此代码之后,它崩溃并且Xcode显示"线程1:EXC_BAD_ACCESS(代码= 2,地址= 0xc)"任何解决方案?

我使用此参考来制作自定义标签栏

我制作按钮,在此标签栏中打开新的视图控制器。

谢谢

只需检查一下您是否已将代码放在要使用的主控制器中,而不是选项卡栏控制器的选项卡中。

最新更新