2014-12-22 4 views
2

테이블 행을 선택할 때 수행되는 세그먼트에서로드 된보기 컨트롤러가 있습니다. 이보기 컨트롤러는 탐색 컨트롤러 (& 탭 표시 줄 컨트롤러)에 포함되어 있습니다.UIViewController 터치 할 때까지로드 속도가 느림

새 탐색 컨트롤러를 설정하고 하위보기 컨트롤러를 가져 와서 변수를 특정 자식에게 전달하여 그 세그먼트에 대비할 수 있습니다.

행을 선택하면 가끔 앱이 멈추고 (약 4-5 초 정도), 때로는 바로 꺼집니다. 나는 다음 화면을 즉시로드 할 화면을 만지면 매달려있는 것을 알게되었습니다.

나는 무엇에 착수합니까?

편집, 코드 추가 :

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    selectedId = myArray.objectAtIndex(indexPath.row).valueForKey("myId") as Int 
    performSegueWithIdentifier("goToExtraDetails", sender: self) 

} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if segue.identifier == "goToExtraDetails" { 

     let nextNavVc = segue.destinationViewController as ExtraMenuNavigationViewController 

     let nextChildVc = nextNavVc.childViewControllers[0] as ExtraMenuViewController 

     nextChildVc.thisId = selectedId 

    } 
} 
+1

에 파견 내부의 if 문을 넣어 지연을 제거 할 수 있었다? – suhit

+0

요청 코드가 추가됨 –

+0

segue.identifier의 코드를 제거하면보기가 멋지고 빠르게로드됩니다. –

답변

2

난 당신이 몇 가지 코드를 추가 할 수 있습니다 메인 스레드

dispatch_async(dispatch_get_main_queue(), { 
    if segue.identifier == "goToExtraDetails" { 

     let nextNavVc = segue.destinationViewController as ExtraMenuNavigationViewController 

     let nextChildVc = nextNavVc.childViewControllers[0] as ExtraMenuViewController 

     nextChildVc.thisId = selectedId 

    } 
}) 
+1

동일한 문제가 있지만 응용 프로그램과 작동하지 않습니다. –