在故事板xcode中直接从视图控制器警告启动的Segues

栏目: 类库 · 发布时间: 2021-04-13

简介  这篇文章主要介绍了在故事板xcode中直接从视图控制器警告启动的Segues以及相关的经验技巧,文章约2353字,浏览量354,点赞数2,值得参考!

嗨我已经以编程方式创建了按钮,并将其连接到另一个视图,但我收到了segue警告

我应该使用prepareForSegue方法进行故事板,但我不知道如何,互联网上有一些样本,但是当我使用该样本时出现错误,请你帮我

这是我的代码

创建按钮

 UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; 
 button.backgroundColor=[UIColor colorWithRed: 201.0/255.0 green: 201.0/255.0 blue:201.0/255.0 alpha: 1.0];
 button.tag = currentTag;
 currentTag++;
 [button.layer setBorderColor: [[UIColor blackColor] CGColor]];
 [button.layer setBorderWidth: 1.0];
 [button setTitle:[NSString stringWithFormat:@"%d",currentTag] forState:UIControlStateNormal];
 button.frame = CGRectMake(80*x, 32*y, 80, 32); 
 [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
 [buttonView addSubview: button];

按钮动作

-(void)buttonPressed:(UIButton *)button
{
    NSLog(@"button %u -- frame: %@", button.tag, NSStringFromCGRect(button.frame));
    [self performSegueWithIdentifier:@"WeekView" sender:self];    
}

准备segue我的警告

直接从视图控制器启动的Segues必须具有用于的标识符 - [UIViewController performSegueWithIdentifier:sender:]

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"WeekView"]) {
        [segue.destinationViewController setTitle:@"WeekView"];
    }
}
答案

直接从视图控制器启动的Segues必须具有与-[UIViewController performSegueWithIdentifier:sender:]一起使用的标识符

直接从Storyboard中的视图控制器拖动segue(也就是说,不是来自按钮或任何操作控件)并且不键入标识符(名称)时会发生此警告。

你必须给这些标识符,否则没有办法以编程方式调用它们......这就是为什么你要像这样链接一个segue的唯一原因。

在Xcode 8中,您应该能够双击警告以使故事板显示违规的segue,以便您可以为其添加名称。

另一答案

这解决了我的问题。

转到Storyboard>检查所有Push或Pop关系segue。

选择每个segue关系>检查属性检查器属性> Storyboard Segue部分

在该部分中给出所有segue的标识符。

另一答案

在Xcode 5中,我通过不仅命名segues而且命名它们导致的视图控制器来消除此警告 - 每个视图控制器都需要一个Storyboard ID。如果您只命名segues,那么(误导性)警告仍会出现。

另一答案

我有同样的警告。如果它有一个标识符,你必须检查每个segue,如XCool所说。

Xcool - 回顾一个较旧的项目时我也有这个问题。我不得不点击每个故事板segue并检查它是否来自视图控制器。如果是,那么我给它一个标识符。

还要检查你的放松细分!这解决了我的问题。


以上就是本文的全部内容,希望对大家的学习有所帮助,版权归原作者或者来源机构所有,感谢作者,如果未能解决你的问题,请参考以下文章。

iOS Xcode LaunchScreen故事板无法显示(示例代码)

故事板中的PresentModalViewController以编程方式iOS 5

故事板和故事板包之间的区别?

如何使用单个故事板uiviewcontroller为多个子类(示例代码)

以编程方式调用storyboard视图控制器时的Xcode断言