如何在导航控制器中将数据从一个视图传递到另一个视图

时间:2014-04-02 03:13:26

标签: ios iphone objective-c uinavigationcontroller

好吧我正在使用导航控制器为iPhone创建一个应用程序,基本上我需要让addviewcontroller知道用户在addsettingsviewcontroller上选择了什么。因此,当用户点击保存按钮时,它会打开addviewcontroller,当它打开时,它需要检查在前一个视图中选择了什么值。我可以让它为我做所有这些,但唯一的问题是,当按下保存按钮并且addviewcontroller加载导航栏不再存在时,用户无法点击后退按钮,视图的标题不是不显示。 这是我的storyboard

的图片

2 个答案:

答案 0 :(得分:1)

试试这个

Addviewcontroller *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"addView"];

controller.status = easy; // select as enum of easy, medium, hard
[self.navigationController pushViewController:controller animated:YES];

希望这能帮到你!

答案 1 :(得分:0)

如果您正在使用故事板,请让它按照您在其中指定的方式处理您的推送或模式。不要使用扰乱流程的代码来破坏它。

在AddViewController.h中声明这个

@property (nonatomic, strong) NSNumber *status;

然后,在你的AddSettingsViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"Add"])
    {
        AddViewController *addViewController = segue.destinationViewController;
        addViewController.status = Selected_Status;
    }
}

Selected_Status可以是:

[NSNumber numberWithInteger:self.levelSegmentedControl.selectedSegmentIndex];