Why don't you just update different parts like this:
- (void)viewDidAppear:(BOOL)animated
{
@weakify(self)
[RACObserve(self, personsArray) subscribeNext:^(NSArray *personsArray) {
@strongify(self)
// update a set of views
[self updateFirstSetOfView];
[self updateSecondSetOfView];
[self doSomethingElse];
// Finally
[UIView animateWithDuration:0.4 animations:^{
[self.view layoutIfNeeded];
}];
}];
}
You could achieve the same with -doNext:
if you prefer the chaining.