首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

返回Swift时返回到上一个uitableview行

在iOS开发中,如果需要返回到上一个UITableView行,可以通过以下步骤实现:

  1. 获取当前UITableView的选中行索引(index path)。
  2. 在上一个视图控制器中定义一个属性来保存选中行的索引。
  3. 在当前视图控制器的返回方法中,将选中行的索引传递给上一个视图控制器的属性。
  4. 在上一个视图控制器的视图加载完成方法中,根据保存的索引滚动到相应的行。

具体实现步骤如下:

  1. 在当前视图控制器中,获取选中行的索引:
代码语言:txt
复制
if let selectedIndexPath = tableView.indexPathForSelectedRow {
    // 保存选中行的索引
    previousViewController.selectedIndexPath = selectedIndexPath
}
  1. 在上一个视图控制器中定义一个属性来保存选中行的索引:
代码语言:txt
复制
var selectedIndexPath: IndexPath?
  1. 在当前视图控制器的返回方法中,将选中行的索引传递给上一个视图控制器的属性:
代码语言:txt
复制
@IBAction func backButtonTapped(_ sender: UIButton) {
    // 返回上一个视图控制器
    navigationController?.popViewController(animated: true)
}
  1. 在上一个视图控制器的视图加载完成方法中,根据保存的索引滚动到相应的行:
代码语言:txt
复制
override func viewDidLoad() {
    super.viewDidLoad()
    
    if let selectedIndexPath = selectedIndexPath {
        // 滚动到选中行
        tableView.scrollToRow(at: selectedIndexPath, at: .middle, animated: true)
    }
}

这样,当用户返回到上一个视图控制器时,会自动滚动到之前选中的行。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/tcaplusdb
  • 腾讯云音视频服务:https://cloud.tencent.com/product/tcavs
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/tencent-meta-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Ajax等待返回结果,弹出一个友好的等待提示

    巧用Ajax的beforeSend 提高用户体验 jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作。...默认是:GET           url:"a.php",//(默认: 当前页地址) 发送请求的地址           dataType:"html",//预期服务器返回的数据类型。    ...beforeSend 局部事件 当一个Ajax请求开始触发。如果需要,你可以在这里设置XHR对象。...ajaxSend 全局事件 请求开始前触发的全局事件 success 局部事件 请求成功触发。即服务器没有返回错误,返回的数据也没有错误。...ajaxComplete 全局事件 全局的请求完成触发 ajaxStop 全局事件 当没有Ajax正在进行中的时候,触发。

    5K100

    Ajax等待返回结果,弹出一个友好的等待提示

    巧用Ajax的beforeSend 提高用户体验 jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作。...默认是:GET           url:"a.php",//(默认: 当前页地址) 发送请求的地址           dataType:"html",//预期服务器返回的数据类型。           ...beforeSend 局部事件 当一个Ajax请求开始触发。如果需要,你可以在这里设置XHR对象。...ajaxSend 全局事件 请求开始前触发的全局事件 success 局部事件 请求成功触发。即服务器没有返回错误,返回的数据也没有错误。...ajaxComplete 全局事件 全局的请求完成触发 ajaxStop 全局事件 当没有Ajax正在进行中的时候,触发。

    3.9K10

    微信小程序如何返回到上一个页面,并刷新页面呢?

    前言 小程序如何返回到上一个页面,并刷新页面呢?...因为浏览器返回会自动刷新。 但是小程序返回是不会自动刷新上一个页面的。所以需要一点点技巧。 下面还是模拟上面的场景。...申请退款页 发起申请退款后,我们用wx.navigateBack()返回到订单详情页面,小程序API有详情说明。 关闭当前页面,返回上一页面或多级页面。...我们找到了onShow函数(生命周期回调 — 用于监听页面显示)Page(Object) 构造器详细说明 返回,onShow是会执行的,所以改造上面方法 data: { orderId: '' }...从申请退款页返回,是不用参数的,返回onShow 执行需要的orderId是原来已经缓存的。 然后onShow直接用这个参数,onShow是获取不到url参数的。

    28.9K126

    窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

    上面的Cell中就是一个ImageView和一个Label, 布局灰常简单啦,接下来就简单介绍一下在Swift中是如何实现(说白了,和Objc实现起来大同小异)。...要做的事情就是输入美女的名字,点击返回后通过自己定义的委托回调,把你输入的值回调到上一个页面(TableView)中去,并修改相应Cell上的名字。...上面实例的意思就是把下一个页面的值通过委托代理回调的形式传到上个页面中去,在前面的博客《窥探Swift之函数与闭包的应用实例》中也做了同样的事情,不过之前我们是使用闭包(Closure)回调来实现的。...deinit是析构函数,用来观察是否引起强引用循环,因为我们是使用的weak, 所以不会引起强引用循环,该deinit方法当返回,是会被释放掉的。...也就是点击TableView的每一,然后跳转到编辑页面对其当前点击的cell进行编辑,编辑后返回通过代理进行值的修改。

    3.5K80

    Swift 2.0 UItableView 的简单使用

    在IOS开发中,UItableView 的使用真的是最常见最普通的了,现在在自学swift 今天也是这用Swift 写了写 UItableview的使用,还有一些经常出错的地方。...下面我先把整个控制器的代理列出来,大家可以顺便看看 swift 是怎样遵守协议的。...这里和大家说一下,dequeueReusableCellWithIdentifier("SwiftCell", forIndexPath: indexPath) 要使用这个方法,在这里你就必须得先注册一个复用的...// Pass the selected object to the new view controller. } */ } 特别说明几点内容: 1.自定义cell,...:可不注册,但是必须对获取回来的cell进行判断是否为空,若空则手动创建新的cell; 使用dequeueReuseableCellWithIdentifier:forIndexPath:必须注册,但返回

    1.7K90

    iOS 9 Storyboard 教程(二下)

    就数据源而言应该那样做.运行app然后点击Game.新的Choose Game控制器将会滑出来.然而点击这些不会做任何事,那是因为这个控制器是在导航堆栈上被弹出来的.但是你却总可以点击返回按钮返回到...当然,如果不发送任何返回数据,这个新的控制器将不是很有用,所以你还需要为它添加一个新的unwind segue....现在运行app测试一下吧.点击一个游戏的名称,那一就会显示一个对号.点击另一个游戏的名称,标记就会随至移动到那一. ?...在PlayerDetailsViewController.swift里,在类的顶部,添加一个属性来保存选中的游戏,那样你就可以在Player对象存储它.给它一个默认的名字”Chess”,那样你就会一个新的玩家始终都会有衣蛾选中的游戏名字...还有一件事– 当你选择一个游戏的时候,返回到Add Player控制器,然后尝试再选择一个游戏,你之前选中的游戏应该会有一个对号标记.解决方案就是当你连线(segue)的时候,通过选中的游戏存储在PlayerDetailsViewController

    2.2K10

    解决springmvc在单纯返回一个字符串对象所出现的乱码情况(极速版)

    使用springmvc框架开发了这么长时间,之前都是直接返回jsp页面,乱码情况都是通过配置和手动编解码来解决,但是今天突然返回一段单纯的字符串,发现中文乱码情况解决不了了,下面就给各位分享一下如何解决返回字符串出现的乱码情况...之前我们都是通过在springmvc的核心配置文件中配置视图解析器来返回指定的页面,将数据通过Model对象渲染页面,最后响应给用户,但是这种方式我们是通过在web.xml文件中配置CharacterEncodingFilter.../filter-name> 12 /* 13     但是在某种情况下我们不需要对用户返回一个页面...,而是单纯给调用接口服务的调用者返回一字符串,这时添加@ResponseBody注解这是必然的,但是你响应的数据中包含中文,则会出现乱码问题,即使你在web.xml文件中配置了解决post请求方式的乱码过滤器

    1.2K90

    RxCocoa 源码解析——代理转发

    我们进入 RxCocoa 的 UITableView+Rx.swift 文件来一探究竟,这个文件中不仅有itemSelected,还有诸如itemDeselected、itemAccessoryButtonTapped...) } 这个方法是写在extension Reactive where Base: UITableView里的,想必大家应该清楚这只是为了给扩展加一个命名空间,Reactive是一个范型 struct...这块如果大家不清楚的话可以看一下 Reactive.swift 文件,由于不是本文的重点就不细说了,可以理解为extension Reactive where Base: UITableView中的方法其实就是给...原来 delegate 啊是一个 DelegateProxy 类型(代理的代理^ ^)……这个proxyForObject方法显然是接收一个对象(本文中这个对象是个 tableView 实例),然后返回其代理...UIScrollView) // 调用 UITableView 的 createRxDelegateProxy 方法,返回一个 RxTextViewDelegateProxy 实例

    1K20

    自学Swift之路(二)UITableView自定义和实际利用

    ,是没有宏这个概念的,但是直接创建一个文件,在里面直接定义常量,别的文件也是可以访问和使用的(并且不需要导入):如图创建一个common文件 ?...ImageView和一个Label,虽然数据是死的,但是在Swift中,另外一个类是可以直接访问另一个类中的变量的(如果没做任何保护的话),所以我们在配置cell的时候是可以直接赋值的,这里就不弄了,然后我们看创建表视图那一块...UIButton(type: .Custom) backBtn.frame = CGRectMake(10, 6, 44, 30) backBtn.setTitle("返回...学了这么几天,我发现Swift还是比较容易入手的,下篇文章我会用一个小的项目,本人是做室内地图SDK的,这次的小项目是仿我OC写的SDK Demo,使用Swift和OC混编,集成百度地图SDK和自己的室内...在下篇文章中会讲讲,Swift项目已上github:https://github.com/qingmomo/Swift-die OC版的demo在我们官网:http://www.innsmap.com

    2.3K90

    AsyncDisplayKit 2.0 教程:入门「译」

    免费App排行榜前100大多数都没有使用Swift(至少6个使用ASDK)。出于这些原因,本系列将重点介绍 Objective-C。话虽这么说,我们已经包括了一个Swift版本的实例项目。...然后返回一个 block,其返回值必须为 ASCellNode。 没有必要担心Cell的复用以及初始化一个Cell的方法。您可能会注意到您现在返回了CardNode,而不是CardCell。...我们都知道,每个 UITableView 至少都要提供一个 -tableView:heightForRowAtIndexPath: 实现方法,因为每个 cell 的高度都由代理计算和返回。...如果返回 NO,则在到达 API 数据末尾,不会再不会发出任何请求。 因为你希望无限滚动,那就返回 YES,以确保总是请求新的数据。...你所要做的就是返回一个block,这个 block 返回你提前设置好的 tableNodeController,它将自动展示在pager 的 页面中。

    2.2K20

    Swift 网络请求数据与解析

    一: Swift 网络数据请求与处理最常用第三方  又有时间出来装天才了,还是在学swift,从中又发现一些问题,这两天上网找博客看问题弄的真的心都累。...看看在Swift中是在怎样请求数据,解析数据加载图片这些的,也使我们最基本最常见的用法了,先说说这几个三方库:      第一个: Alamofire  (它的原作者就是AFNetworking的原作者...Git地址:https://github.com/Alamofire/Alamofire     第二个: SwiftyJSON  一个解析JSON数据的三方库,使用swift写的,中间帮你省去swift...尽量别做一个我知道那样可以,但我不知道为什么的孩纸哈!!还是给整个文件代码给大家看,完成清晰点!...B 这是一个 NIL合并运算符,它的作用是如果 A 不是NIL 就返回前面可选类型参数 A 的确定值, 如果 A 是NIL 就返回后面 B 的值!

    2.4K80

    iOS 9 Storyboard 教程(一下)

    这个table view应该会显示一列玩家名单,所以现在你需要为这个app创建一个数据模型—一个包含Player对象的数组.使用Swift File模板在iOS/Source里为这个工程添加一个新文件....接下来,你需要把一个Player对象数组赋值给PlayersViewController.使用Swift File模板为开始,创建一个新文件,命名为SampleData.把它添加到SampleData.swift...数组: var players:[Player] = playersData 当定义players变量,你可以很容易在PlayersViewController里设置样本数据.但由于这些数据在后面也许会从一个.... 2.你查找每一对应的Player对象,并将其分配给player. 3.可以看到标签和图片的数据都来自player对象....现在无论什么时候你只要改变table view数据源的dequeueReusableCellWithIdentifier(_:forIndexPath:)方法,它都会返回一个PlayerCell实例而不是返回

    3K20

    Swift| 基础语法(四)

    有所帮助,同时也是对自己的一个总结。...Swift 中的闭包有很多优化的地方: 1 根据上下文推断参数和返回值的类型 2 从单行表达式闭包中隐式返回 可以省略return 3 可以使用简化的参数如 $0 $1 意为从0或者1开始 4 提供了尾随闭包的语法...中,如果在某个类中定义一个属性,那么这个属性必须要初始化,否者会报错, 如果暂时不想初始化,那么可以在后面写上一个 ?...号 但是在定义闭包的属性,一定要注意,以下这种写法是最常见的一种错误写法: /** 当前写法代表闭包的返回值可以是nil,而不是初始化的闭包 */ var finished: () -> (...闭包的循环引用问题 在Swift开发中,有一个原则就是能不写self就不写self,但是在闭包中必须写上self; 这是因为闭包是用来保存一段代码,而且系统也不知道这段代码具体的调用时间, 所以为了保证闭包中的对象不被释放

    1.4K10
    领券