Делегат предназначен для того, чтобы вы могли получать уведомления, когда предупреждение отклонено, и какую кнопку использовали для его отмены. Это не влияет на то, отменено ли оповещение вообще.
Предупреждение будет оставаться видимым до тех пор, пока оно не будет отклонено либо нажатием кнопки (если таковые имеются - они не требуются), либо вызовом либо [UIAlertView dismissWithClickedButtonIndex:animated]
, либо (недокументированного) dismiss
метода экземпляра предупреждения.
Похоже (как предложил Коббал), оповещение 2 появляется поверх оповещения 1, вы отклоняете оповещение 2, и оповещение 1 остается там (до тех пор, пока оно само не будет отклонено).
Есть ли какая-то конкретная причина, по которой вы хотите показывать новое предупреждение, пока другое все еще показывает? Возможно, какой-то дополнительный контекст поможет нам добраться до сути проблемы, которая, как я подозреваю, может быть проблемой дизайна.
[править] Возвращаясь к этому и читая еще раз, мне интересно, о чем вы спрашиваете с помощью метода делегата, должны ли вы показывать предупреждение 2 оттуда? В этом случае это, вероятно, то, что вы хотите - прямо или косвенно. Косвенным образом я имею в виду, что в другом месте может быть установлено состояние, определяющее, следует ли показывать предупреждение 2 (или обстоятельства, которые к нему ведут). Это состояние (возможно, флаг) может быть установлено, когда вы показываете первое предупреждение, и сбрасывается, когда предупреждение отклоняется (из метода делегата).