2016-07-26 7 views
-1

UIWindowのサブビューとしてViewControllerを追加しました& tableViewビューコントローラを追加しましたが、デバイスのセルアプリケーションクラッシュをタップしています&シミュレータのセルが奇妙な問題で消える!!!テーブルビューセルタブがクラッシュしました

this is the error

class func addSideMenu(viewControllerName : String)->UIView{ 
    let storyboard = UIStoryboard(name: MAIN_STORYBOARD, bundle: nil) 
    let vc = (storyboard.instantiateViewControllerWithIdentifier(viewControllerName)) 
    vc.view.frame = CGRectMake(-(UIScreen.mainScreen().bounds.width + 100),0, UIScreen.mainScreen().bounds.width - 100, UIScreen.mainScreen().bounds.height) 
    print(vc.view.frame) 
    vc.view.tag = 200 
    return vc.view 
} 


newView = Utilities.addSideMenu("SideMenuViewController")   

UIApplication.sharedApplication().delegate?.window!!.addSubview(newView!)

+0

デバッグコンソールのメッセージは何ですか? – Bienemann

+0

あなたのコードやコンソールのエラーなどが表示されなくても助けになれません。質問を編集してこれらの詳細を追加してください。 –

+0

コンソールでエラーが発生しないメインスレッドエラーが発生しました – samad5353

答えて

0

それは、ビューコントローラを作成し、そのビューを取り、その後、スコープの外コントローラ]ドロップを聞かせすることが悪い考えです。これを行うと、ビュー内の依存関係(テーブルビューのデリゲート関数など)がクラッシュする可能性があります。

ビューを使用している間は、コントローラを保持するか、コントローラを廃棄する必要がある場合は、ビューに接続していないことを確認する必要があります。

0

ビューコントローラはUIViewControllerまたはUITableViewControllerのサブクラスである必要があります。継承された依存関係を回避し、望ましくない動作を引き起こすことは少なくなります。

また、ビューコントローラーの初期化子にはtableView.delegate = selftableView.dataSource = self、またはviewDidLoad()である必要があります。これは、問題の一部である可能性があります。

関連する問題