使用prepareForSegue按钮

3 xcode objective-c storyboard ios

嗨我以编程方式创建按钮,然后将我的按钮连接到另一个视图,但是我遇到了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];
Run Code Online (Sandbox Code Playgroud)

按钮动作

-(void)buttonPressed:(UIButton *)button
{
NSLog(@"button %u -- frame: %@", button.tag, NSStringFromCGRect(button.frame));
WeekView *crtObj=[[WeekView alloc]initWithNibName:@"WeekView" bundle:nil];
[self.navigationController pushViewController:crtObj animated:YES];
[crtObj release];


}
Run Code Online (Sandbox Code Playgroud)

为segue做准备

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"WeekView"]) {

        // Get reference to the destination view controller
       WeekView *vc = [segue destinationViewController];

        // Pass any objects to the view controller here, like...
        [vc setMyObjectHere:object];  //// I don't know what should I write instead of object
    }}
Run Code Online (Sandbox Code Playgroud)

错误

在此输入图像描述

编辑2:****我有一个警告:

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

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"WeekView"]) {

        // Get reference to the destination view controller
     //  WeekView *vc = [segue destinationViewController];

        // Pass any objects to the view controller here, like...
       // [vc setMyObjectHere:object];
    [segue.destinationViewController setTitle:@"WeekView"];
    }}
Run Code Online (Sandbox Code Playgroud)

Mun*_*ndi 11

有两种方法可以将视图控制器推送到导航控制器上.

  1. 旧的方式,所有代码.这就是你做的.此时你可以完全忘记segues.

  2. 新方法:在Storyboard中建立Segue(将segue从一个视图控制器推送到新的视图控制器,您也在Storyboard中定义),给它一个Identifier名称,然后使用此代码推送视图控制器.

.

[self performSegueWithIdentifier:myIdentifyer sender:self];
Run Code Online (Sandbox Code Playgroud)

其中self是视图控制器.现在您可以在中进行自定义prepareForSegue:.