在iOS 7 UIStatusBar中,它的设计方式与视图合并如下:
(由TinaTavčar设计的GUI )
这很酷,但是当你在视图的顶部有一些东西时它会使你的视图陷入混乱,并且它会与状态栏重叠.
是否有一个简单的解决方案(例如在info.plist中设置属性)可以改变它的工作方式[不重叠]回到它在iOS6中的状态?
我知道一个更直接的解决方案是self.view.center.x为每个视图控制器提供+ 20个点,但是更改它们会使其他尺寸self.view.center.x变得更大(有不同可能导致自定义segue等问题)并且突然变成一个单调乏味的工作最好避免.
如果有人能为我提供单线解决方案,我真的很高兴.
PS我知道我可以通过做某事来隐藏状态栏
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
Run Code Online (Sandbox Code Playgroud)
在didFinishLaunchingWithOptions方法中,但这是一个解决方法,一个避免问题的捷径,所以我不认为这是一个真正的解决方案.
将导航栏或工具栏(故事板)拖动到视图控制器时出现问题.
UINavigationBar的:

如上图所示,右侧按钮几乎与状态栏重叠.
使用UIToolbar它会发生相同的事情:

这个视图控制器旨在用作模态,这就是我没有使用UINavigationController的原因.
在另一节我使用UINavigationController,它看起来像我期望的那样:

如何在不重叠状态栏的情况下将UINavigationBar/UIToolbar拖动到视图控制器?
当点击UINavigationBar的后退按钮(由UINavigationController控制)时,如何弹出UIAlertView?在某些情况下,我想问用户"你确定吗?" 问题类型,以便他可以中止操作并保持当前视图或弹出导航堆栈并转到父视图.
我发现最吸引人的方法是在UINavigationBar的Delegate上覆盖ShouldPopItem().
现在,这里有一个非常相似的问题:iphone navigationController:在退出当前视图之前等待uialertview响应
还有一些类似性质的其他问题,例如: 检查UIViewController是否即将从导航堆栈中弹出? 以及如何判断在UINavigationControllerStack中按下后退按钮的时间
所有这些状态"子类UINavigationController"作为可能的答案.
然后有一个读取像子类UINavigationController一般不是一个好主意: Monotouch:UINavigationController,覆盖initWithRootViewController
在苹果的文档也说的UINavigationController不打算被继承.
其他一些人声称在使用UINavigationController时甚至不能覆盖ShouldPopItem(),因为它不允许将自定义/子类UINavigationBarDelegate分配给UINavigationBar.
我的子类化尝试都没有工作,我的自定义代表没有被接受.
我还在某处读过可能在我的自定义UINavigationController中实现ShouldPopItem(),因为它将自己指定为其UINavigationBar的Delegate.
没什么好吃的,这没用.UINavigationController的子类如何知道属于UINavigationBarDelegate的Methods.它被拒绝:"找不到合适的方法来覆盖".删除已编译的"override"关键字,但完全忽略该方法(如预期的那样).我认为,使用Obj-C可以实现几个协议(类似于C#AFAIK中的接口)来实现这一点.不幸的是,UINavigationBarDelegate不是一个接口而是MonoTouch中的一个类,所以这似乎是不可能的.
我在这里很丢失.当UINavigationBar由UINavigationController控制时,如何在UINavigationBar的Delegate上覆盖ShouldPopItem()?或者有没有其他方法可以弹出UIAlertView并在可能弹出导航堆栈之前等待它的结果?
back-button uinavigationbar uinavigationcontroller xamarin.ios