我正在尝试将变量(tutorID
)传递给另一个视图控制器(TimetableTableViewController
),但是当代码运行时,应用程序崩溃并发出错误消息:Thread 1: signal SIGABRT
。
我在TimetableTableViewController.h
内部(我将变量传递给的视图):
@property (nonatomic, strong) NSString *currentTutorID;
这是在视图控制器中的prepareForSegue
方法中我从以下位置发送变量:
NSString *tutorID = @"1";
TimetableTableViewController * timetableTableViewController = [segue destinationViewController];
timetableTableViewController.currentTutorID = tutorID;
如果有人可以帮我修复此错误或给我另一种方式,谢谢。
修改
segue正在导致NavigationViewController
,这就是为什么它会崩溃。有谁知道如何将变量传递给TimetableTableViewController
而不是NavagationViewController
。
答案 0 :(得分:0)
奇怪你得到了SIGABRT,应该说你的控制器没有响应选择器tutorID
。
使用[segue.destinationViewController topViewController]
从您想要呈现的导航控制器获取根控制器。
答案 1 :(得分:0)
所以问题是你的segue是在NavigationViewController中进行的,而TimetableTableViewController是它的根视图控制器。
在这种情况下,[segue destinationViewController]将返回NavigationViewController而不是TimetableTableViewController。
你可以试试这个。
NavigationViewController * nav = [segue destinationViewController];
TimetableTableViewController * timetableTableViewController = nav[0];
timetableTableViewController.currentTutorID = tutorID;
试试这个并告诉我你得到了什么。