尝试从模态视图中隐藏状态栏.
已经检查了几种方法:
override func prefersStatusBarHidden() -> Bool {
return true
}
with / without self.setNeedsStatusBarAppearanceUpdate()
Run Code Online (Sandbox Code Playgroud)
也
UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: .Fade)
Run Code Online (Sandbox Code Playgroud)
但在iOS 9中折旧
这适用于全屏演示(模态segue演示选项),但在全屏幕上注意这是我的设置.
如果你有任何想法..
我的iOS 5应用程序中有一个Storyboard.
在那里,我创建了许多屏幕,它完美地运作.
但是,我在代码中创建了一个视图控制器,而不是UI操作的结果,而是处理数据的结尾.我想显示这个视图控制器,然后,作为modalViewController,但也有它在故事板编辑器中设计.
可能吗?使用笔尖我这样做:
ResultsController *rc = [[ResultsController alloc] initWithNibName:@"ResultsController"
bundle:nil];
[self.navigationController presentModalViewController:rc animated:YES];
[rc release];
Run Code Online (Sandbox Code Playgroud)
现在我真的没有nib文件,所以我该怎么做?
我有一个视图控制器B被根视图控制器A推入导航堆栈,如果该模型处于特定状态,则该视图控制器B需要显示另一个视图,因此它模态地呈现另一个视图控制器C.当我解雇时视图控制器CI还想弹出视图控制器B,如果它也在导航堆栈上.我想这样做只有一次过渡.
有任何想法吗?
在appDidFinishLaunchingWithOptions上,我使用以下代码将整个应用程序着色为红色.
self.window.tintColor = [UIColor otfRedColor];
Run Code Online (Sandbox Code Playgroud)
这非常有效,当我的应用加载时,所有导航栏项都是红色的.A是我的根视图控制器.
我有3个视图控制器,a,b和c.A拉出b的模态演示视图表,其中提取了c的完整模态视图.当C被拉起时,导航栏上的条形按钮项目都是灰色的,这不应该发生,因为在应用委托委托窗口后,我没有以任何方式改变任何色调或颜色.然后我用
[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
解雇VC c和b,但现在我的整个应用程序是灰色的.自应用代理以来,我根本没有使用任何色调代码,为什么会发生这种情况?当我再次从A到B时,导航栏项目仍然是红色的???
从A中提取视图控制器B的代码:
AthleteAdd *addAthlete = [self.storyboard instantiateViewControllerWithIdentifier:@"addAthlete"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addAthlete];
addAthlete.delegate = self;
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:navigationController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
从B提取C的代码:
MedicalReleaseVC *medRelease = [self.storyboard instantiateViewControllerWithIdentifier:@"showMedRel"];
medRelease.delegate = self;
[self presentViewController:medRelease animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样,或有想法?我尝试将第三个视图控制器着色为红色3个单独的方式,它仍然保持灰色,然后当一切都被解雇时,我的整个应用程序都是灰色的.请帮忙!!
编辑:
如果它有帮助,我解决这个问题的方法是在我的appdelegate.m中设置以下内容
self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
Run Code Online (Sandbox Code Playgroud) 在iOS 8+中,我注意到如果你有一个目前firstResponder在视图控制器中显示的文本字段,当视图控制器被解除时,键盘会在被解雇之前挂起约1秒钟.
iOS 8.0和8.1而不是 7.1 都会出现这种情况.
任何想法为什么会这样?
有一次,用户点击一个按钮,我希望我的 modalViewController 显示为屏幕中间的一个小方块(您仍然可以在后台看到原始视图控制器)。
我找到的关于 stackoverflow 的几乎每个答案都使用情节提要来创建模态视图控制器,但我已经找到了所有我发现的东西。
当您点击应该调出模态视图的按钮时,将调用此函数:
func didTapButton() {
let modalViewController = ModalViewController()
modalViewController.definesPresentationContext = true
modalViewController.modalPresentationStyle = .overCurrentContext
navigationController?.present(modalViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
modalViewController 包含:
import UIKit
class ModalViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .blue
view.isOpaque = false
self.preferredContentSize = CGSize(width: 100, height: 100)
}
}
Run Code Online (Sandbox Code Playgroud)
根据我找到的答案,我的印象是,如果我设置了preferredContentSize = CGSize(width: 100, height: 100),那么它会使模态视图控制器为 100px x 100px。
但是,视图控制器占据了整个屏幕(标签栏除外,因为我设置了 modalViewController.modalPresentationStyle = .overCurrentContext
我显然在这里错过了一步,但我想以编程方式完成所有工作,因为我在项目中根本没有使用 Storyboard(除了设置打开控制器)
在此先感谢您的帮助!!
我有一个mainViewController.我调用[self pushModalViewController:someViewController],这使得someViewController成为活动视图.
现在我想在mainViewController中调用一个函数,因为someViewController随着[self dismissModalViewController]消失了.
viewDidAppear可能不会被调用,因为视图已经存在,就在模态视图下方.一旦modalView解散自己,如何调用mainViewController中的函数?
非常感谢!
我正在展示带动画的模型视图.默认情况下,它来自自下而上.如何让动画从左到右?我知道我可以使用导航控制器.但实际上,呈现视图不需要导航栏,并且模态呈现的视图也不需要导航栏.我仍然希望从左到右过渡.
modal-dialog modalviewcontroller presentmodalviewcontroller ios
我有一个视图控制器,上面有一个按钮.该按钮是隐私政策.当它被点击时,它会转到正确的IBAction,我创建了隐私控制器.
- IBAction ...
{
PrivacyPolicyViewController *privacy = [[PrivacyPolicyViewController alloc] init];
.....
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个隐私控制器的模态视图,它有一个向上动画的UIWebView和一个用于在ios 7中关闭它的后退按钮.我在网上看到的所有方式都是ios 6并且似乎已被弃用.
我们有一个带有tableView的MainViewController,它提供了一个新的modalViewController.
MainViewController仅限于纵向,modalViewController可以旋转.
问题出在iOS8中,当modalViewController旋转时,调用MainViewcontroller中iOS8中的旋转回调方法 - - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
因此,UITableView正在重新加载其数据,这是我们不想要的行为.
我们可以阻止iOS 8的这个功能,而不是旋转呈现的UIViewController吗?
ios ×7
ios8 ×2
iphone ×2
objective-c ×2
cocoa-touch ×1
hidden ×1
ios5 ×1
ios7 ×1
ipad ×1
modal-dialog ×1
rotation ×1
statusbar ×1
swift ×1
uistoryboard ×1
uitableview ×1
uiwebview ×1