如何 select 在 iPad 的详细视图中默认项目? (在拆分视图控制器中)
How to select default item in detail view for iPad? (in Split View Controller)
我正在使用拆分视图控制器。对于 iPad,当应用程序启动时,我想在主视图控制器的第一项中进行选择。那么我怎样才能在 Swift 中做到这一点呢?谢谢!
我解决了这个问题。我写信是为了以后能帮助到别人。
func viewDidLoad() {
//..
let initialIndexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.selectRowAtIndexPath(initialIndexPath, animated: true, scrollPosition:UITableViewScrollPosition.None)
if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
self.performSegueWithIdentifier("ShowDetail", sender: initialIndexPath)
}
}
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "ShowDetail" {
if sender!.isKindOfClass(UITableViewCell) {
if let indexPath = self.tableView.indexPathForCell(sender as! UITableViewCell) {
// Get row from selected row in tableview
}
} else if sender!.isKindOfClass(NSIndexPath) {
let tableCell = self.tableView.cellForRowAtIndexPath(sender as! NSIndexPath)
let indexPath = self.tableView.indexPathForCell(tableCell!)
// Get row from sender, which is an NSIndexPath
}
}
}
转换为Swift3:
let initialIndexPath = IndexPath(row: 0, section: 0)
self.tableView.selectRow(at: initialIndexPath, animated: true, scrollPosition: UITableViewScrollPosition.none)
if UIDevice.current.userInterfaceIdiom == .pad {
self.performSegue(withIdentifier: Constants.Segues.showDetail, sender: initialIndexPath)
}
修复自动错误后转换为 Swift5
let initialIndexPath = NSIndexPath(row: 0, section: 0)
self.tableView.selectRow(at: initialIndexPath as IndexPath, animated: true, scrollPosition:UITableView.ScrollPosition.none)
if UIDevice.current.userInterfaceIdiom == .pad {
self.performSegue(withIdentifier: "ShowDetail", sender: initialIndexPath)
}
我正在使用拆分视图控制器。对于 iPad,当应用程序启动时,我想在主视图控制器的第一项中进行选择。那么我怎样才能在 Swift 中做到这一点呢?谢谢!
我解决了这个问题。我写信是为了以后能帮助到别人。
func viewDidLoad() {
//..
let initialIndexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.selectRowAtIndexPath(initialIndexPath, animated: true, scrollPosition:UITableViewScrollPosition.None)
if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
self.performSegueWithIdentifier("ShowDetail", sender: initialIndexPath)
}
}
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "ShowDetail" {
if sender!.isKindOfClass(UITableViewCell) {
if let indexPath = self.tableView.indexPathForCell(sender as! UITableViewCell) {
// Get row from selected row in tableview
}
} else if sender!.isKindOfClass(NSIndexPath) {
let tableCell = self.tableView.cellForRowAtIndexPath(sender as! NSIndexPath)
let indexPath = self.tableView.indexPathForCell(tableCell!)
// Get row from sender, which is an NSIndexPath
}
}
}
转换为Swift3:
let initialIndexPath = IndexPath(row: 0, section: 0)
self.tableView.selectRow(at: initialIndexPath, animated: true, scrollPosition: UITableViewScrollPosition.none)
if UIDevice.current.userInterfaceIdiom == .pad {
self.performSegue(withIdentifier: Constants.Segues.showDetail, sender: initialIndexPath)
}
修复自动错误后转换为 Swift5
let initialIndexPath = NSIndexPath(row: 0, section: 0)
self.tableView.selectRow(at: initialIndexPath as IndexPath, animated: true, scrollPosition:UITableView.ScrollPosition.none)
if UIDevice.current.userInterfaceIdiom == .pad {
self.performSegue(withIdentifier: "ShowDetail", sender: initialIndexPath)
}