导航:在其他控制器中显示textview文本

时间:2014-07-03 05:58:15

标签: ios uinavigationcontroller uibutton uitextview

我有一个主视图控制器(嵌入在导航控制器中),它有一个标签,我放置了一个按钮。当我单击按钮时,它将转到下一个包含文本视图和两个按钮的视图控制器。两个按钮取消和发布。取消按钮只需要带我到主视图控制器。 Post应该带我到主视图控制器,文本是我在文本视图中写的。但当我按下任一按钮时它正在崩溃。 对于取消按钮,我写了代码:

    - (IBAction)cancelButton:(id)sender {
    NewRequestViewController *back=[[UIStoryboard storyboardWithName:@"Main" bundle:nil]
                                    instantiateViewControllerWithIdentifier:@"NewRequestViewController"];
    [self.navigationController pushViewController:back animated:NO];

}

对于按钮,我编写了如下代码:

  - (IBAction)postComment:(id)sender {

    _parent.commentBox.text=_textView.text;
    [self.navigationController popViewControllerAnimated:YES];

}

其中commentBox是标签下方按钮的出口。

崩溃报告说: 在意外状态下完成导航过渡。导航栏子视图树可能已损坏。

请有人帮我解决这个问题。 谢谢你的帮助。

4 个答案:

答案 0 :(得分:0)

将此用于取消按钮事件。

-(IBAction)cancelPressed:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

要将文本数据发布到目标View Controller,您可以像这样使用prepareForSegue方法。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    DestinationViewController *destController = [segue destinationViewController];
    destController._yourTextView.text == _yourText.text;
    }
}

此处,yourTextView是要在DestinationViewController上声明的TextView属性,并在源控制器中导入其.h文件,并将其指定为当前文本值,如上所示。

由于您使用按钮IBAction发布数据,因此您需要在按钮IBAction中使用performSegueWithIdentifier方法。像这样:

- (IBAction)postComment:(id)sender {
[self performSegueWithIdentifier:@"yourSegueIdentifier" sender:nil];
}

这将自动调用prepareForSegue,它将显示您的目标View Controller。

希望这有帮助。

答案 1 :(得分:0)

尝试使用以下代码进行取消操作:

[self.navigationController popViewControllerAnimated:YES];

对于发布操作,我建议您使用Unwind Segues

http://www.absoluteripple.com/1/post/2013/08/using-ios-storyboard-segues.html

答案 2 :(得分:0)

如何从主视图控制器导航到下一个视图控制器。如果使用storyboard segue意味着检查:

我认为您使用push segue从mainviewcontroller导航到下一个视图控制器。  使用模态segue导航我认为它适用于你。

答案 3 :(得分:0)

对于取消按钮 - >

您可以使用[self.navigationController popViewControllerAnimated:YES];

对于发布按钮 - >

您希望将一些文本传递给父视图控制器,因此您可以拥有父视图实现的子视图控制器的委托方法,并且可以在popViewControllerAnimated之前将该文本从子委托方法传递给父视图。