如何发送segue

时间:2014-09-17 06:03:53

标签: ios objective-c segue navigationbar

我有一个按钮,当我点击它时,我带到下一个屏幕,导航栏的名称是" Main"对于第一个屏幕,我希望当我导航到下一个屏幕时,它应该显示该标题而不是"返回"按钮,到目前为止我无法得到结果,因为它抛出异常,请帮助我,我的代码如下。

-(IBAction)btnMore:(id)sender
{
    [self performSegueWithIdentifier:@"more" sender:self];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(NSString*)sender
{
    if ([segue.identifier isEqualToString:@"more"])
    {
        moreInfo *vc = (moreInfo*)segue.destinationViewController;
        vc.str = (NSString*)sender;
    }
}

3 个答案:

答案 0 :(得分:0)

看起来您的问题的一部分可能是您的发件人可能是视图控制器,因此将视图控制器强制转换为NSString *没有意义

答案 1 :(得分:0)

请尝试这样做;

简单方法...... 像这样为类创建局部变量。

@interface Main() {
    NSString *titleOfSecView;
}

-(IBAction)btnMore:(UIButton *)sender
{
    titleOfSecView = sender.titleLabel.text;
    [self performSegueWithIdentifier:@"more" sender:self];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(NSString*)sender
{
    if ([segue.identifier isEqualToString:@"more"])
    {
        moreInfo *vc = (moreInfo*)segue.destinationViewController;
        vc.str = titleOfSecView;
    }
}

答案 2 :(得分:-1)

您应该按照以下步骤操作: -

//使用IB

设置主视图和第二视图的标题

Set title of your Main and second View using IB

然后它会自动将标题更改为给定的标题,如下所示。

//返回标题替换为" Main"主要VC的标题

Back title is replaced with "Main" title of main VC