私はこのストーリーボードを持っています:
最初のView Controller( newCourseViewControllerと呼ばれる)の「Insegnante」ボタンを押すと、教師のリストを含むテーブルビューが表示されます。教師を押すと(そしてメソッドtableView:canEditRowAtIndexPath:
が呼び出されます)UITableViewController
、最初のView Controllerに押されたオブジェクトを「渡す」必要があります。
これは、最初のビュー コントローラーnewCourseViewController.hのコードです。
#import <UIKit/UIKit.h>
#import "Teacher.h"
@interface newCourseViewController : UIViewController
@property (nonatomic , strong) Teacher *teacher;
@end
これは、最初のビュー コントローラーnewCourseViewController.mのコードです(重要なコードのみ) 。
#import "newCourseViewController.h"
#import "Courses.h"
#import "Teacher.h"
#import "addTeacherToCourseViewController.h"
@interface newCourseViewController ()
@property (weak, nonatomic) IBOutlet UITextField *textField;
@end
@implementation newCourseViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)setTeacher:(Teacher *)teacher
{
self.teacher = teacher;
NSLog(@"Maestro settato!");
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"addTeacherToCourse"]) {
[segue.destinationViewController setPreviousViewController:self];
}
}
次に、2 番目のビュー コントローラーのコードaddTeacherToCourseViewController-h
@interface addTeacherToCourseViewController : UITableViewController
@property (nonatomic , weak) id previousViewController;
@end
およびaddTeacherToCourseViewController.m (重要なメソッドのみ)
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Teacher *teacher = [self.teachers getTeacherInPosition:indexPath.row];
[self.previousViewController setTeacher:teacher];
[self.navigationController popViewControllerAnimated:YES];
}
prepareForSegue
メソッドの最初のビュー コントローラーでpreviousViewController
、2 番目のビューの に自分自身を設定しました。次に、選択した教師を「パス」し、2 番目のビュー コントローラーを閉じます。アプリケーションが[self.navigationController popViewControllerAnimated:YES];
Xcode のクラッシュとシミュレーターのクラッシュを実行すると。何が問題なのかわかりません。手伝って頂けますか?