[英]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.