2016-01-22 86 views
0

我已經實現didSelectRowAtIndexPath方法後:的UITableViewController追溯到第一小區在一個UITableViewController駁回第二的ViewController

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

    // determine selected cell 
    let name = self.names[indexPath.row] 

    // present menu VC 
    let destVC: UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("MenuItemsReadOnly") as UIViewController 

    self.navigationController?.pushViewController(destVC, animated: true) 
} 

到目前爲止好。它工作正常。我的問題開始之後我解聘destVC:

func doneSelf() { 
    self.navigationController?.popViewControllerAnimated(true) 
} 

解僱之後,我回到了我的UITableViewController,但鑑於滾動一路攀升到頂部,這樣第一小區是可見的。

我還沒有實現函數viewDidAppear。我不是調用viewDidLoad中tableView.reloadData(),這是唯一的視圖相關的方法我已經在我的UITableViewController實施:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.tableView.delegate = self 
    self.tableView.dataSource = self 

    // format navigation controller 
    self.navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()] 
    self.navigationController!.navigationBar.translucent = false 
    self.navigationController!.navigationBar.barStyle = .Black 
    self.navigationController!.navigationBar.barTintColor = UIColor.flatRedColor() 
    self.navigationController!.navigationBar.tintColor = UIColor.flatRedColor() 

    self.automaticallyAdjustsScrollViewInsets = false 

    self.tableView.backgroundColor = UIColor.flatWhiteColor() 

    // format table UI 
    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None 

    // last cell would get cropped off without this 
    self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 64, 0) 

    // navigation buttons 
    navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "IconMenuShortcut"), style: .Plain, target: self, action: "presentLeftMenuViewController") 
    navigationItem.leftBarButtonItem?.tintColor = UIColor.whiteColor()   
} 

這是設計?我從第二個UIViewController返回時如何將選定的單元格保持在視圖中,而不是自動回到頂部?

+0

不是由設計,你可能已經寫在'viewDid/WillAppear'一些代碼,這會導致這一點。 – luk2302

+1

http://stackoverflow.com/questions/34868661/how-to-stop-uitableview-from-returning-to-top-cell-after-popover/34868986#34868986 使用此!它會解決你的問題。請提供答案。 – iOSEnthusiatic

+0

這很好,謝謝!如果您將您的評論重寫爲答案,我會接受它。 – Polis

回答

0

選擇了所選擇的indexPath的參考,當復出的TableviewController,叫

[self.tableView scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionNone animated:YES]; 
+0

感謝您的建議,但仍有一些動作,即使使用動畫:假選項。我需要的是在第二個VC被解僱後,tableView根本不會移動。 – Polis

相關問題