The mapViewDidLoad fires when first layer is added to the map and map is being initialized with spatial reference and envelope. If you want to know when all layers are loaded then you should use mapView:didLoadLayerForLayerView: for each layer you are adding to the map. You can check when all layers are loaded (not drawn) and then do your further work. There is no mechanism to check whether layer is finished drawing in the map.
Hope this helps!
Regards,
Nimesh