我创建了一个基于视图的应用程序。我想要覆盖UIViewControllers,因为我需要它们,例如像模态视图那样,如果填充了一些值,则加载下一个视图,直到你在那里做某事,然后你就可以回来了。
这是我的代码
- (void) viewWillAppear:(BOOL)animated {
NSMutableDictionary *tempPrefs = [prefsController readPrefs];
NSString *tempName = [tempPrefs objectForKey:@"Name"];
NSString *tempProduct = [tempPrefs objectForKey:@"Product"];
// usedbefore so skip first view (first view == login view
if ((tempName.length != 0) && (tempProduct.length != 0)) {
// you have values, enter new room without checking
[self loadGetProListViewController];
}
}
- (void) loadGetProListViewController {
[self dismissViewControllerAnimated:NO completion:nil];
getProListViewController = [[GetProListViewController alloc] initWithNibName:@"GetProListViewController" bundle:nil];
[self presentViewController:getProListViewController animated:YES completion:nil];
}
然而,一旦达到此方法已执行但没有任何事情发生..
如果有人能告诉我如何创建模态viewControllers或一些非常感谢的描述。
答案 0 :(得分:0)
首先,您应该了解UIViewController lifecycle,了解您可以在哪里展示不同的UIViewController
另外我猜你的架构有点不对(也许我错了)。
让我们假设你有firstViewController,你提出的-viewDidAppear方法getProListViewController
你不认为提出中间firstViewController
是奇怪的吗?
我会让你的if
条款升级。 F.e:
/ usedbefore so skip first view (first view == login view
if ((tempName.length != 0) && (tempProduct.length != 0)) {
// present your getProListViewController
} else {
// present your "FirstViewController" (login or whatever)
}
你在开始时没有遇到过你的问题
答案 1 :(得分:-1)
试试这个
[self presentModalViewController: getProListViewController animated:YES];
而不是你的presentviewcontroller
[self presentViewController:getProListViewController animated:YES completion:nil];