繁体   English   中英

在视图控制器之间传递变量-线程1:信号SIGABRT

[英]Passing Variables between View Controllers - Thread 1: signal SIGABRT

我正在尝试将变量( tutorID )传递给另一个视图控制器( TimetableTableViewController ),但是当代码运行时,应用程序崩溃并给出错误消息: Thread 1: signal SIGABRT

我在TimetableTableViewController.h (将变量传递到的视图中)中包含以下内容:

@property (nonatomic, strong) NSString *currentTutorID;

而这在视图控制器的prepareForSegue方法中,我从发送变量:

NSString *tutorID = @"1";

TimetableTableViewController * timetableTableViewController = [segue destinationViewController];
timetableTableViewController.currentTutorID = tutorID;

如果有人可以帮助我解决此错误或提供其他方法,谢谢。

编辑

这个问题导致了NavigationViewController所以这就是它崩溃的原因。 有谁知道我如何将变量传递给TimetableTableViewController而不是NavagationViewController

奇怪的是,您正在获取SIGABRT,应该说您的控制器没有响应选择器tutorID

使用[segue.destinationViewController topViewController]从要显示的导航控制器中获取根控制器。

所以问题是您的segue正在NavigationViewController中,而TimetableTableViewController是它的根视图控制器。

在这种情况下,[segue destinationViewController]将返回NavigationViewController而不是TimetableTableViewController。

你可以试试看

NavigationViewController * nav = [segue destinationViewController];
TimetableTableViewController * timetableTableViewController = nav[0];
timetableTableViewController.currentTutorID = tutorID;

试试这个,告诉我你得到什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM