Хорошо, это потому, что метод viewDidLoad вызывается, когда вы представляете контроллер представления с анимацией или без нее.
Так что просто переверните эти 2 утверждения
[self presentModalViewController:schoolController animated:YES];
schoolController.courseDetails = @"passing new content";
как это
schoolController.courseDetails = @"passing new content";
[self presentModalViewController:schoolController animated:YES];
А затем проверьте результаты еще раз ...