title: Delegation pattern in Obj-C - Am I doing it wrong?
body: <p>So in my app I have the following situation:</p>
  
  <p><strong>BackendCommunicatingClass -> (owned by) -> ModelClass -> (owned by) -> HomescreenViewController</strong></p>
  
  <ul>
  <li>HomescreenViewController is a delegate for ModelClass.</li>
  <li>ModelClass is a delegate for BackendCommunicatingClass.</li>
  </ul>
  
  <p>Also on when the app launches for the first time, I have this:</p>
  
  <p><strong>WelcomeViewController -> (owned by) -> HomescreenViewController</strong></p>
  
  <ul>
  <li>HomescreenViewController is delegate for WelcomeViewController.</li>
  </ul>
  
  <p>When the user types a username and password in the WelcomeViewController, this information needs to get all the way to BackendCommunicatingClass, and then all the way back to WelcomeViewController to display error if needed. Right now I have implemented this by passing information to each class in the communication chain, until it gets to BackendCommunicatingClass. The result is a lot of duplication of protocol methods and I feel like I'm doing it wrong.</p>
  
  <p>What do you think?</p>