gpt4 book ai didi

objective-c - 你能阻止模态视图被驳回吗?

转载 作者:行者123 更新时间:2023-11-29 13:43:35 24 4
gpt4 key购买 nike

我有一个 View 使用带有页面 curl 的模态视图以允许输入用户名。然后使用基于 Web 的服务验证此用户名是否有效。

一切正常,直到您输入无效的用户名并在模态视图外单击。这仍然会检查用户名,该用户名被报告为无效并且 UIAlertView 打开。但是,它返回到父 View 。

在这种情况下,有没有办法让模式不被关闭?

我已尝试重新加载 View ,但要么它不工作,要么 UIAlertView 阻止它。我的最后一个想法是将模态视图的显示与无效用户名警报上的“确定”结合起来。有人有什么想法吗?

最佳答案

如果您没有使用 UINavigationController,您可以在调用模态视图的 View Controller 中放置类似这样的内容:

-(void)dismissModalViewControllerAnimated:(BOOL)animated{
if (_someFlagForBeingProperlyLoggedIn) [super dismissModalViewControllerAnimated:animated];
}

当您点击页面 curl 时,将发送呈现/父 View Controller dismissModalViewControllerAnimated:

由于您使用的是导航 Controller ,因此您的选择是有限的。这是因为 UINavigationControllerUIViewController 的子类,而且是一个以 self 为中心的类。当您单击页面 curl 时,它会调用 dismissModalViewControllerAnimated:。

您仍然可以选择子类化 UINavigationController 并实现上述方法,但这很快就会变得困惑。

让 UIAlertView“直接返回”模态登录 View 非常容易。让主视图符合 UIAlertViewDelegate 协议(protocol)。当您显示警报时,将该实例设置为委托(delegate),并在该类中实现该方法:

-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
// Enclose in if (buttonIndex == #) for selective calling
UINavigationController* nav = (UINavigationController*)[[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"Preferences"];
[nav setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[self.navigationController presentModalViewController:nav animated:YES];
}

然后,当警报 View 被关闭时,它将显示“登录” View 。

关于objective-c - 你能阻止模态视图被驳回吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8317252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com