如果我解除模态VC并在不到一定的时间内再次呈现它(或另一个),它就不会出现.我错过了什么吗?
iphone objective-c modalviewcontroller presentmodalviewcontroller
我正在使用presentModalViewController:animated:虽然在功能上它可以正常工作,但它有一个我想删除的工件.当模态呈现的viewController出现时,其父viewController被完全隐藏,背景变黑.这不是我想要的.我的孩子viewController的视图是半透明的,我想揭示它后面的父viewControllers视图.我想要的效果是一张描图纸在背景上滑动.
我假设presentModalViewController:animated:支持这个.那不是这样吗?
谢谢,
道格
我有iphone应用程序中的两个视图控制器.
1.)FirstVC
2.)SecondVC
在我的FirstVC中我有一个按钮.通过点击该按钮我打开了SecondVC presentModalViewController.看下面的代码.
- (IBAction)buttonClicked:(id)sender
{
SecondVC *secondVC = [SecondVC alloc] initWithNibName:@"SecondVC" bundle:nil];
[self.navigationController presentModalViewController:secondVC animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
现在转移到SecondVC.在SecondVC上,我创建了导航栏以及"取消"按钮作为leftBarButtonItem.我在取消按钮上设置了一个单击按钮的事件.在那种方法中,我想解雇SecondVC.波纹管方法在SecondVC中.看下面的代码.
- (void)cancelButtonClicked
{
[self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用.我无法通过此代码解雇SecondVC.请提出另一种技巧.
我必须从去除圆角UIView的UIViewcontroller。这是该图片
我正在与详细视图
detailView.modalPresentationStyle = UIModalPresentationFormSheet;
Run Code Online (Sandbox Code Playgroud)
我想提出UIViewcontroller的观点不圆圆。有人对这个问题有想法吗?
我通过搜索看到了一些这些问题,但主要与故事板有关.
我只是务实地创建一个模态视图控制器.它实际上是为了使用可达性,一旦连接被视为NotReachable,我提出了一个模态视图控制器,如下所示:
-(void)checkConnection: (Reachability*) curReach {
NetworkStatus netStatus = [curReach currentReachabilityStatus];
if (netStatus == NotReachable) {
NSLog(@"inernet reach - not reachable");
UIViewController *modalViewController = [[MESConnectionModalViewController alloc] init];
modalViewController.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.2f];
modalViewController.view.opaque= YES;
[self.window.rootViewController presentModalViewController:modalViewController animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
在视图控制器中MESConnectionModalViewController,目前没有代码,只有标准.
当模态视图转换到当前视图时,背景看起来是正确的(这是短暂的一两秒).一旦模态完全在屏幕上,它就是全黑,而不是部分黑色.我期待基本上略微涵盖当前的内容.上面的代码在应用程序委托中是seutp,每当Reachability更新时调用,所以我试图在解决因特网连接时显示模态视图控制器.
objective-c uiviewcontroller modalviewcontroller presentmodalviewcontroller ios
我试图使用presentViewController从某个ViewController转到另一个ViewController后,尝试返回其当前状态。
但是,当我尝试关闭另一个ViewController(使用dismissViewController)时,出现了白屏。
RootViewController *rootViewController
= [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]
instantiateViewControllerWithIdentifier:@"RootViewController"];
[self presentViewController:rootViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
这也不是一个选择,因为它实例化了一个新的ViewController,而我希望旧的ViewController处于当前状态。
呈现另一个ViewController时是否需要将RootViewController作为参数传递,或者是否有另一个选项可以返回到RootViewController的当前状态?
在我的应用程序中,我正在做的是:
rootViewController - > pushViewController - > pushViewController - > pushViewController - > presentModalViewController
从presentModalViewController我想直接去rootViewController.
所以我做的是:
while(theViewController = [theObjectEnumerator nextObject ])
{
if([theViewController modalTransitionStyle] == UIModalTransitionStyleCoverVertical)
{
[self.mNavigationController popToRootViewControllerAnimated:
YES];
}
}
}else
while(theViewController = [theObjectEnumerator nextObject ])
{
if([theViewController modalTransitionStyle] == UIModalTransitionStyleCoverVertical)
{
[self.mNavigationController dismissModalViewControllerAnimated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
但在这里我收到一条消息
警告:在演示或解雇过程中尝试从视图控制器中解除!
并在此应用程序崩溃后.
我搜索了这个,但找不到对我有用的东西,任何机构都可以解释为什么会这样吗?
objective-c uinavigationcontroller presentmodalviewcontroller ios poptoviewcontroller
我很想知道如果我们使用.fullScreenvs.overFullScreen presentation style while presenting a view controller modally over rootViewController in an iOS app.
.overFullScreen如果presentedViewController有透明度,我阅读 using将不必要地显示它下面的内容,但如果我使用,.fullScreen那么在透明度后面也会有一个灰色的屏幕,看起来不太好。所以我不确定这有什么好处。
我正在学习 SwiftUI,目前的重点是实现一个我能够使用 UIKit 实现的方法。我需要创建一个方法来确定是否应该推送视图或基于布尔值以模式方式呈现视图。
在 UIKit 中,我的代码是:
var presentVC = true // boolean that determines whether VC will be presented or pushed
let vc = ViewController() //Your VC that will be pushed or presented
if (presentVC == true) {
self.presentViewController(vc, animated: true, completion: nil)
} else {
self.navigationController.pushViewController(vc, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
但在 SwiftUI 中,我不确定如何使用以下方法正确实现:
看来 NavigationLink 和 .sheet 修饰符与视图实现相结合。有人在 SwiftUI 中遇到过并解决过这种情况吗?谢谢
我正在使用 SwiftUI 1.0,因为我需要支持 iOS 13。
presentmodalviewcontroller swiftui swiftui-navigationlink swiftui-navigationview
Xcode 自动更新,现在我的注册屏幕视图控制器显示在我转换到的当前视图控制器下方。查看屏幕截图我该如何解决这个问题?
如果我创建一个 segue 并使用 Interface Builder 选择当前模式,那么当我运行该应用程序时,我现在将在当前屏幕下方看到上一个屏幕。在更新之前这从来都不是问题。(我在整个应用程序中使用相同的背景,因此我的大多数视图控制器背景都设置为透明。)
另外,我认为这是相关的,当我在 Xcode 中查看故事板并将视图设置为使用 iPhone 8 Plus 时,它显示了一个以前不存在的浅灰色圆角矩形。查看故事板布局 当我运行应用程序时,我的大多数视图控制器现在都被限制为这种形状并且不再全屏。请参阅此处的示例 我的设置视图控制器使用白色背景,因此您可以更轻松地看到我在说什么。这个VC曾经是全屏的,没有向下移动并且在顶部圆角。有任何想法吗?
Xcode 11.1 针对 iOS 12.1
xcode interface-builder viewcontroller presentmodalviewcontroller segue
presentmodalviewcontroller ×10
ios ×5
objective-c ×4
iphone ×2
ipad ×1
segue ×1
swiftui ×1
uiview ×1
xcode ×1