Одним из возможных решений, которое я не решаю рекомендовать, является предоставление в UIView категории (суперкласса наивысшего уровня, совместно используемой обоими классами), которая добавляет реализацию метода loadLandscape, тогда вы можете оставить ее вне объектов и просто объявить классподдерживает этот протокол (а также импортирует категорию).
Это своего рода крайность, поскольку каждый экземпляр UIView получает метод, который можно вызвать, что может сбить с толку что-то, что проверяет отклики на отклики, а не на конформирование.
Техника, которую я бы использовал, заключается в том, чтобы поместить эту реализацию в нечто вроде класса RotatingProtocolImplementation в качестве метода уровня класса.Что-то должно знать, чтобы вызвать метод loadLandscape вашего протокола, и что-то могло бы так же легко обнаружить объявленную классом поддержку протокола и вызвать метод уровня общего класса вместо метода на самом экземпляре класса - так что протокол мог бы статьбольше протокола маркера, без такого количества (или каких-либо) методов, которые класс должен был бы определить для его поддержки.