Replace delegate swizzling with delegate substitution and forwarding.