【发布时间】:2012-03-24 00:40:01
【问题描述】:
我有一个屏幕,用户可以在其中选择一组餐点——一旦选择了餐点,应用程序就会从数据库中获取结果并显示它们的列表。现在,我想实现一个条件来决定是否应该加载下一个屏幕 - 即。如果没有互联网连接,则显示警报并且不显示下一个屏幕等。
我已经实现了一个系统来检查是否有互联网连接,但我不确定如何以及在哪里决定应该加载下一个屏幕。有什么想法吗?
谢谢,
【问题讨论】:
标签: iphone xcode cocoa-touch ios5
我有一个屏幕,用户可以在其中选择一组餐点——一旦选择了餐点,应用程序就会从数据库中获取结果并显示它们的列表。现在,我想实现一个条件来决定是否应该加载下一个屏幕 - 即。如果没有互联网连接,则显示警报并且不显示下一个屏幕等。
我已经实现了一个系统来检查是否有互联网连接,但我不确定如何以及在哪里决定应该加载下一个屏幕。有什么想法吗?
谢谢,
【问题讨论】:
标签: iphone xcode cocoa-touch ios5
一旦您在代码中知道是否要显示下一个屏幕,您能否只添加一个 if 语句来加载下一个屏幕或显示没有连接的警告?
if (hasConnection) {
// Show next screen
} else {
// Show warning
}
【讨论】:
当用户选择一些食物时,你应该有一个动作被触发,不是吗?在此操作中,您将调用 [UINavigationController pushViewController:nextViewController animated:YES] 或类似的名称。将此函数调用放入您偏好的条件中,否则显示一个弹出窗口。
【讨论】:
我使用以下答案解决了这个问题:
Prevent segue in prepareForSegue method? 通过将 segue 链接到我的主视图控制器,然后将 IBAction 附加到最初是 segue 启动器的按钮并执行该方法中的逻辑。如果一切都解决了,我会打电话给[self performSegueWithIdentifier:@"results" sender:self];
【讨论】:
1.5 其他选项: 如果您愿意拆分故事和笔尖,只需在需要/需要时加载笔尖。 如果您想只关注故事,只需在需要时加载另一个故事。与加载笔尖相同:
UIStoryboard *otherStoryboard = [UIStoryboard storyboardWithName:@"OtherStory" bundle:nil];
UIViewController *otherController = [otherStoryboard instantiateInitialViewController];
[self.navigationController pushViewController: otherController animated:YES];
【讨论】: