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

从另一个UITableViewController XCode7 Swift2获取numberOfRowsInSection

是指在Xcode 7中使用Swift 2编写代码,从另一个UITableViewController中获取指定section的行数(numberOfRowsInSection)。

在Swift中,可以通过委托模式来实现从一个视图控制器获取另一个视图控制器的数据。具体步骤如下:

  1. 首先,在源视图控制器(即要获取数据的视图控制器)中创建一个协议(protocol),定义一个方法用于获取行数。例如:
代码语言:swift
复制
protocol DataDelegate: class {
    func getNumberOfRowsInSection() -> Int
}
  1. 在源视图控制器中,创建一个属性用于保存目标视图控制器的实例,并将其设置为弱引用。同时,让源视图控制器遵循刚才创建的协议。例如:
代码语言:swift
复制
class SourceViewController: UITableViewController, DataDelegate {
    weak var targetViewController: TargetViewController?
    
    // 实现协议方法
    func getNumberOfRowsInSection() -> Int {
        // 在这里可以通过目标视图控制器获取行数
        return targetViewController?.numberOfRowsInSection() ?? 0
    }
    
    // ...
}
  1. 在目标视图控制器中,创建一个属性用于保存源视图控制器的实例,并将其设置为弱引用。同时,让目标视图控制器实现一个方法用于返回行数。例如:
代码语言:swift
复制
class TargetViewController: UITableViewController {
    weak var sourceViewController: SourceViewController?
    
    // 返回行数的方法
    func numberOfRowsInSection() -> Int {
        // 在这里返回实际的行数
        return 10
    }
    
    // ...
}
  1. 在源视图控制器中,将目标视图控制器的实例赋值给属性,并设置源视图控制器为目标视图控制器的代理。例如:
代码语言:swift
复制
class SourceViewController: UITableViewController, DataDelegate {
    weak var targetViewController: TargetViewController?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 在这里进行其他初始化操作
        
        // 将目标视图控制器的实例赋值给属性
        targetViewController = // 获取目标视图控制器的实例
        
        // 设置源视图控制器为目标视图控制器的代理
        targetViewController?.sourceViewController = self
    }
    
    // ...
}
  1. 最后,在源视图控制器中,可以通过调用目标视图控制器的方法来获取行数。例如:
代码语言:swift
复制
class SourceViewController: UITableViewController, DataDelegate {
    // ...
    
    func someMethod() {
        let numberOfRows = targetViewController?.numberOfRowsInSection() ?? 0
        print("Number of rows: \(numberOfRows)")
    }
    
    // ...
}

这样,就可以从另一个UITableViewController XCode7 Swift2获取numberOfRowsInSection了。

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

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS9系列专题6——iOS9其他适配注意点 原

二、安装不受信任的开发者应用         我们知道,在Xcode7后,开发者可以不用花99dollars去购买开发者账号而可以在自己的iphone上进行测试。...在Xocde7中,新建的项目是默认开启BitCode的,如果我们用Xcode7编译提交应用,这里有需要注意适配的地方。         ...如果要支持BitCode,需要保证所有的SDK都支持BitCode,如果要更新旧的SDK,只需要在Xcode7上开启BitCode重新制作一遍即可。         ...在另一个工程中,我们写如下代码:  BOOL can= [[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"TEST:...适配注意点: 1、可以通过动态计算来获取label的宽度,进行设置label的宽度 2、一个更简单的方法是通过设置一个确定的字体,来进行适配 专注技术,热爱生活,交流技术,也做朋友。

42830

【IOS开发基础系列】UISearch专题

1 UISearchBar         UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 1.1 代码示例 1....UISearchBar的背景 1.2.1.1 修改UISearchBar的背景颜色         UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是...UIKeyboardTypeNamePhonePad; self.searchBar.showsBookmarkButton = YES;     //将seachBar作为控制器的透视图,视图控制器,继承UITableViewController...(iOS8新特性) UISearchController实现和上述效果基本一致,适用于iOS8以上版本 实现如下图搜索效果 3.1.2 1)新建数据源属性 代码如下:     1)新建控制器,继承与UITableViewController...return 1; } //每个分区有多少行数据 - (NSInteger) tableView: (UITableView *)tableView numberOfRowsInSection: (NSInteger

33720

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

数据源的格式是一个数组,而数组中存放的是多个字典,每个字典有两个键值对,一个键值对存储要显示图片的文件名,另一个键值对则存储美女的名字。为了使该数据的存储结构,请看下方结构图。 ?     ...我们上面Storyboard中的视图控制器使用的是UIViewController而不是UITableViewController。...7 - returns: 对应Section中cell的个数 8 */ 9 func tableView(tableView: UITableView, numberOfRowsInSection...的事件获取的方法就在TableViewDelegate中。...在该方法中,首先我们要暂存一下点击的是哪个Cell, 也就是记录一下点击Cell的IndexPath, 然后就是获取点击的Cell对象,因为通过该Cell对象,可以获取相应Cell上的数据。

3.4K80

iOS学习——tableview中带编辑功能的cell键盘弹出遮挡和收起问题解决

一 主控制器为UITableViewController或其子类   首先,有一个很简单的解决方案,就是将我们的控制器换成UITableViewController或其子类,UITableViewController...2.1 UITextField或UITextView点击之后的详细流程   在对cell进行封装和自定义的时候,我们需要考虑我们的UITextField或UITextView点击编辑框到结束编辑的整个过程是怎么样的...2.2 自定义包含UITextField的UITableViewCell   首先,我们在点击编辑区域的时候,获取到当前编辑区域相对屏幕的位置,这样方便我们判断整个tableview是否需要上移以及需要上移多少比较合适...- (void)textFieldDidBeginEditing:(UITextField *)textField{ //获取当前cell相对屏幕的位置 CGRect frame = [...//保存键盘弹出前tableview的contentOffset偏移 self.lastContentOffset = self.tableView.contentOffset; //获取键盘高度

3.9K80

在Swift中使用工厂进行依赖注入

例如,假设我们正在构建一个消息应用程序,我们有一个视图控制器来显示用户的所有消息: class MessageListViewController: UITableViewController {...然而,我们的列表视图很可能不是只有一层,这在某种程度上需要我们实现导航到另一个视图控制器。 假设我们想让用户在点击消息列表中的某个单元格时,能够导航到一个新的视图。...一个选择是简单地将发送者也添加到列表视图控制器的初始化器中: class MessageListViewController: UITableViewController { init(loader...另一个可能的解决方案(在这种情况下很常见)是让MessageSender成为一个单例。...这样我们就可以很容易地任何地方访问它,并通过简单地使用它的共享实例将其注入MessageViewController中: let viewController = MessageViewController

80520

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券