According to UISplitViewController’s documentation, in a simple app configuration where you just have one Master View Controller, and one Detail View Controller, the common practice is to give them pointers to each other to simplify the communication between them. So I think this is the initial reason.
Second, even as our project got a little bit more complex, with the addition of the second detail view controller, ChannelViewController, we still want the post we tap on, on the master view controller, to always be displayed on a WebViewController detail view controller. And so the pointer we had to it in the beginning is now double useful, as we are sure that we are sending the message to the correct detail view controller (WebViewController).
If, however, we had been using [[[self splitViewController] viewControllers] objectAtIndex:1] to obtain a pointer to the SplitViewController’s detail view controller, we would be in risk of sending the messages to ChannelViewController, if it happened to be currently in display when we tapped on a post.