2016-11-30 11 views
3

私は次のケースを再現しており、問題の理論上の原因を調べることを望んでいます。問題は次のとおりです。UIViewControllerはxibを正しくロードしません

新しいSwift View ControllerとNibペアを宣言すると、View Controllerのアウトレットがまったく読み込まれないことがあります(Nibがまったく読み込まれません)。これは特定のデバイスでのみ発生します(私のケースでは、iPad mini 1、非網膜、iOS 8.4.1で処理されます)。ペン先の方法で初期化:

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { 
    super.init(nibName: Constants.viewControllerNibName, bundle: nil) 
} 

required init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

私はペン先の名前を入力すると、すべてのデバイス上で期待通りに手動ですべての作品

これが必要な理由を誰かが私に少しを啓発することはできますし、いただきました問題の原因。 。

私の場合、上記のように、デバイスのごく一部にしか問題が起こらないということです。

更新:問題はiOS 8でのみ発生し、iOS 9以降では発生していないようです。テスト中、Zonily Jameからリンクされているチケットから見つかったようです。

+1

viewControllerNibNameが静的であると言って、それを削除しますか? –

+0

私は完全にそれを読む前に完全に答えました。あなたが話していることを直接やろうとはしていませんが、より具体的な質問をすることができれば貴重な情報を得るべきです。 – Sethmr

+0

私たちは同じ問題を抱えていました[Nib Issue](http://stackoverflow.com/questions/40860839/presenting-a-nib-modally-crashes-on-ios-8-but-not-on-ios-9)特定のデバイスではなく、特定のOSの –

答えて

1

これは、私はViewControllerを

class ViewController: UIViewController { 
    init() { 
     super.init(style: .plain) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 
} 

その後、私だけでセットアップフレームとサブビューとして追加mannuallyセットアップに使用するものです。

let vc = ViewController()! 
vc.view.frame = CGRect(x: xValue, y: yValue, width: desiredWidth, height: desiredHeight) 
view.addSubview(vc.view) 
addChildViewController(vc) 
vc.didMove(toParentViewController: self) 

vc.view.removeFromSuperview() 
vc.removeFromParentViewController() 
vc = nil 
関連する問題