Попробуйте использовать следующий код в B (сразу после закрытия C, как вы уже делаете):
[self.parentViewController dismissModalViewControllerAnimated:YES];
ВАЖНО :
Не делайте ничего в методе после этой строки.
Этот контроллер вида (B), вероятно, будет освобожден и освобожден ...
UPDATE
Начиная с iOS7, описанный выше метод устарел.
Вместо этого используйте следующий метод:
[self.parentViewController dismissViewControllerAnimated:YES completion:^{ /* do something when the animation is completed */ }];