У меня есть следующий код, вызываемый для просмотра метода viewdidload внутри моего UIViewController.
Внутри appdelegate у меня есть UINavigationController, экземпляр которого создается с помощью этого вышеупомянутого контроллера, и, в свою очередь, UINavigationController помещается внутрь UITabViewController, который, в свою очередь, назначается в качестве rootviewcontroller.
Внутри контроллера я делаю асинхронный веб-вызов, чтобы получить данные для заполнения таблицы, если я использую код представления загрузки для отображения индикатора активности, я получаю следующее предупреждение в monotouch.
Ожидается, что приложения будут иметь корневой контроллер представления в конце запуска приложения
public class LoadingView : UIAlertView
{
private UIActivityIndicatorView _activityView;
public void ShowActivity (string title)
{
Title = title;
this.Show();
// Spinner - add after Show() or we have no Bounds.
_activityView = new UIActivityIndicatorView (UIActivityIndicatorViewStyle.WhiteLarge);
_activityView.Frame = new RectangleF ((Bounds.Width / 2) - 15, Bounds.Height - 50, 30, 30);
_activityView.StartAnimating ();
AddSubview (_activityView);
}
public void Hide ()
{
DismissWithClickedButtonIndex (0, true);
}
}
Любые указатели будут с благодарностью получены.
РЕДАКТИРОВАТЬ: я уже устанавливаю контроллер корневого представления.
window = new UIWindow (UIScreen.MainScreen.Bounds);
window.RootViewController = tabController;
Полный код делегата приложения:
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
// create a new window instance based on the screen size
window = new UIWindow (UIScreen.MainScreen.Bounds);
tabController = new UITabBarController();
jobsNavigationController = new UINavigationController(new JobsController());
jobsNavigationController.NavigationBar.BarStyle = UIBarStyle.Black;
jobsNavigationController.TabBarItem.Image = UIImage.FromFile("Images/briefcase.png");
jobsNavigationController.TabBarItem.Title = "Current Positions";
myAccountNavigationController = new UINavigationController(new LoginDialogViewController());
myAccountNavigationController.NavigationBar.BarStyle = UIBarStyle.Black;
myAccountNavigationController.TabBarItem.Image = UIImage.FromFile("images/man.png");
myAccountNavigationController.TabBarItem.Title = "My Account";
tabController.SetViewControllers(new UIViewController[] { jobsNavigationController,myAccountNavigationController,new SettingsDialogViewController()},false);
window.RootViewController = tabController;
// make the window visible
window.MakeKeyAndVisible ();
return true;
}