Вы вызываете метод класса в UIViewController, который не существует (dismissDelegate - который вы определили как свойство Infoviewcontroller).
Я думаю, что вы несколько запутались с использованием ModalViewDelegate, позвольте мне попытаться объяснить ...
В Руководстве по программированию контроллера Apple View рекомендуется, чтобы ViewController, представляющий модальный контроллер, отвечал за его отклонение. Поэтому вам нужен способ, чтобы модальный контроллер мог общаться с представляющим контроллером.
Итак ... Ваш текущий контроллер должен соответствовать вашему протоколу ModalViewDelegate (а не вашему модальному контроллеру, как у вас здесь).
Когда вы представляете модальный контроллер представления, вы устанавливаете его делегата на себя (self является представляющим контроллер представления).
Ваш метод dismissView должен быть таким:
-(void) dismissView: (id)sender
{
[self.dismissDelegate dismissModalView:self];
}
На самом деле, вам, вероятно, даже не нужно передавать параметр UIViewController делегату, поскольку вы не будете использовать его в конечном итоге.
Наконец, ваше свойство dismissDelegate действительно не должно сохраняться, оно должно быть назначено вместо него (в противном случае вы получите циклическое сохранение отношения).