当使用时关闭各种视图控制器时UIModalPresentationCustom,在取消视图控制器后屏幕变为黑色,就像所有视图控制器已从视图层次结构中删除一样.
正确设置了转换委托,正确地请求并传递了animationControllerForPresentedController,并在动画结束后完成转换.
这个确切的代码在使用iOS 7 SDK编译时非常有效,但在使用iOS 8b5编译时会破坏
我有一个应用程序,在iOS 7下工作正常,但是当为iOS 8构建时,展开的segues不起作用.
我创建了一个新项目并添加了一个模态(带有tableviewcontroller的navigationcontroller)并尝试使用展开模式.不幸的是它也不起作用.正在展开的方法位于desination视图控制器中.展开segue是通过storyboard(tableviewcontroller中的导航栏按钮)创建的.当我点击按钮时,没有任何反应.没有日志输出,模态不会消失.它似乎只影响模态segue.推/弹出正常解开.
有没有人有类似的问题,并有一个想法我怎么能解决它?
当我在iOS 8上为我的应用程序添加自定义输入视图时,我遇到了问题.这在iOS 7上完全正常,但是当切换到iOS 8时,一切都失败了.
这是堆栈跟踪:
2014-06-03 21:23:54.237 MyApp[1910:47245] *** Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller:<UICompatibilityInputViewController: 0x1103f9d40>
should have parent view controller:<StopChooser: 0x11083e200> but requested parent is:<UIInputWindowController: 0x110858800>'
*** First throw call stack:
(
0 CoreFoundation 0x00000001042eee35 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000103b919a0 objc_exception_throw + 45
2 CoreFoundation 0x00000001042eed6d +[NSException raise:format:] + 205
3 UIKit 0x00000001023d94cd -[UIViewController _addChildViewController:performHierarchyCheck:notifyWillMove:] + 184
4 UIKit 0x0000000102977a2b -[UIInputWindowController changeToInputViewSet:] + 416
5 UIKit 0x0000000102973f56 -[UIInputWindowController moveFromPlacement:toPlacement:starting:completion:] + 185
6 UIKit …Run Code Online (Sandbox Code Playgroud) 使用WKWebView代替UIWebView,我注意到,WKWebView与我相比,它的内容大幅缩小UIWebView.我希望WKWebView停止这样做,并按照字面意思尊重我的CSS值UIWebView.
我在我的原生iOS应用程序中使用Web视图,用于在iPad上显示信息内容的弹出窗口内容.很高兴能够将内容和设计人员提供给他们并说"只需放入一些HTML内容,引用链接的CSS文件".
所有这些在使用时都很有用UIWebView.
但是popovers通常非常紧凑.
在我狭隘的popovers中,内容按比例缩小,就好像我的内容整个网页被小型化以适应.我可以看到WKWebView主要用于在iOS上构建备用浏览器或构建混合应用程序的人,其中WKWebView本质上是接管屏幕.
WKWebView中的放大系数不是可以设置的.当然,用户可以放大,但这会失败.我不是在寻找放大的视口; 我正在寻找与UIWebView一样适合和自动换行的整个内容.
使用WKWebView,在模拟器中,如果我将正文文本大小提升到50px而不是14px,我会看到我想要的大小.但是,这个代码在设备上时甚至没有帮助,因此也不能选择夸大我的CSS大小!
好吧,没什么.它还没有(在)iOS8中被弃用,也许b/c它仍然有用,正如我所经历的那样.但我注意到WKWebView很快.我已经看到一些猜测,写作是UIWebView的墙上.我想:"为什么现在不采用iOS8中更现代的API?"
所以,我现在继续使用UIWebView,但是我想切换到WKWebView,如果我能让它尊重我的CSS大小.
这是UIWebView很好地呈现的原始CSS,但是popover中的哪个WKWebView会以非常小的字体呈现:
body {
font-family: "HelveticaNeue";
font-size: 15px;
line-height: 17px;
color: #000000;
}
h1 {
font-family: "HelveticaNeue-Bold";
font-size: 18px;
line-height: 20px;
color: #000000;
}
h2 {
font-family: "HelveticaNeue-Bold";
font-size: 16px;
line-height: 18px;
color: #000000;
}
Run Code Online (Sandbox Code Playgroud) 我在存档上收到此错误:
命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc失败,退出代码为1
怎么解决?
请看截图.
直到昨天,Xcode的一切正常.它将模拟器显示为:

但是今天,当我打开它时,模拟器列表变为:

每个模拟器都可以看到两次,名称后面跟一个唯一的id.我还观察到同样名为Simulator的也是两个不同的实例.
任何人都可以帮助我,如何摆脱这个?或者如何重置它.它给人一种奇怪的外观.
任何建议都会有所帮助.
当我正在初始化实体的实例时,我收到了错误Variable used within its own initial value.
这是抛出错误的代码:
class func buildWordDefinition (word:String, language:Language, root:TBXMLElement) -> WordDefinition
{
let word = WordDefinition(word: word, language: language)
Run Code Online (Sandbox Code Playgroud)
错误指向word变量.
这是WordDefinition类:
class WordDefinition {
let word: String
let language: Language
init(word: String, language:Language)
{
self.word = word
self.language = language
}
}
Run Code Online (Sandbox Code Playgroud)
这个错误是什么意思 ?
我的应用程序有一个多窗格教程样式视图,用户可以通过该视图了解该应用程序.这非常实现,如本教程中所述.在为iOS 7和8实现它之后,我正在比较它们的工作方式,并找到后者的问题 - 我在这里运行Xcode 6 GM.
似乎UIPageViewController在转换完成后呈现视图.我重写了委托方法,看看发生了什么:
- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers
{
NSLog(@"Frame size before: %@", NSStringFromCGRect([(UIViewController*)pendingViewControllers[0] view].frame));
}
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
NSLog(@"Frame size after: %@", NSStringFromCGRect([(UIViewController*)previousViewControllers[0] view].frame));
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例输出:
Frame size before: {{0, 0}, {600, 600}}
Frame size after: {{0, 0}, {320, 568}}
Run Code Online (Sandbox Code Playgroud)
这样表现如下:向左滑动以拉入下一个视图,并在新视图的底部注意32磅的空白区域.转换完成后,它会进入正确的布局.
这可能是iOS 8中的错误吗?在这一点上,我完全没猜到.
我正在开发一款适用于iPhone的快速应用程序.在我的应用程序中有一个模态视图,我只想在纵向视图中.
我的问题是,我如何以编程方式强制手机不允许旋转?换句话说,我正在寻找不允许以横向模式显示模态视图的代码(打开纵向旋转锁定).
这仅适用于1个模态视图,因此我无法关闭整个应用程序的旋转,否则我只会完全禁用旋转.
我在这里的研究中找到了代码 但是在目标C中,如果有帮助的话.谢谢!
我的视图控制器显示WKWebView.我安装了一个消息处理程序,一个很酷的Web Kit功能,允许从网页内部通知我的代码:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let url = // ...
self.wv.loadRequest(NSURLRequest(URL:url))
self.wv.configuration.userContentController.addScriptMessageHandler(
self, name: "dummy")
}
func userContentController(userContentController: WKUserContentController,
didReceiveScriptMessage message: WKScriptMessage) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好,但现在我发现我的视图控制器正在泄漏 - 当它应该被释放时,它不是:
deinit {
println("dealloc") // never called
}
Run Code Online (Sandbox Code Playgroud)
看起来只是将自己安装为消息处理程序会导致保留周期,从而导致泄漏!
ios8 ×10
ios ×6
objective-c ×3
xcode6 ×3
swift ×2
wkwebview ×2
autolayout ×1
cocoa-touch ×1
css ×1
memory-leaks ×1
rotation ×1
simulator ×1
uikit ×1
uiwebview ×1
webkit ×1
xcode ×1
xcode6.0.1 ×1