是否有可能获得一个 .xib 窗口到选项卡式故事板

2024-01-26

我没有很长时间编写代码,Xcode,所以我有点垃圾,基本上我已经创建了一个 .xib 并希望它出现在故事​​板中,但我真的不知道从哪里开始,因为我有一个 xib 窗口具有UITableView and UIPickerView其中所有代码在 xib 中都很好,但我是否需要在故事板 .h / .m 等中添加代码,如果不是,我该如何为我的应用程序做某种下拉菜单。这是xib中的代码

#import <UIKit/UIKit.h>

    @interface myview : UIViewController <UITableViewDelegate, UITableViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource>    


    @property (strong, nonatomic) IBOutlet UITableView* tableView;
    @property (strong, nonatomic) IBOutlet UIPickerView* pickerView;
    @property (strong, nonatomic) NSMutableArray* tableData;
    @property (strong, nonatomic) NSMutableArray* pickerData;


    @end

这是 .m 但我会把它分解

    #import "myview.h"

    @implementation myview


    @synthesize tableView, pickerView, tableData, pickerData;





    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }

this is the -(void)viewDidLoad];etc..


    - (void)viewDidUnload
    {
        [super viewDidUnload];

        tableView.delegate = self;
        tableView.dataSource = self;
        pickerView.delegate = self;
        pickerView.dataSource = self;

        tableData = [[NSMutableArray alloc] init]; // table starts empty
        pickerData = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", @"4", @"5", nil]; // picker starts with values 1, 2, 3, 4, 5

        [tableView reloadData];
        [pickerView reloadAllComponents];    // Release any retained subviews of the main view.
        // e.g. self.myOutlet = nil;
    }

-(bool) 


        - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
        {
            // Return YES for supported orientations
            return (interfaceOrientation == UIInterfaceOrientationPortrait);
        }


        - (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView {
            //The number of sections in UITableView
            return 1;

        }


        - (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section {
            // The number of rows in the UITableView
            return [tableData count];

        }


         - (UITableViewCell*)tableView:(UITableView*)tableView1 cellForRowAtIndexPath:(NSIndexPath *)indexPath {
                static NSString *cellIdentifier = @"cell";

           UITableViewCell *cell = [tableView1 dequeueReusableCellWithIdentifier:cellIdentifier];

                if (cell == nil) {
                    cell = [ [UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];

          }
    cell.textLabel.text = [tableData objectAtIndex:indexPath.row];

        return cell;

    }  


        - (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
            // Whatever happens when you select a table view row.
        }

        - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
        {
            // The number of sections in the UIPickerView
            return 1;
        }

        - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
        {
            // The number of rows in the UIPickerView
            return [pickerData count];
        }

        - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
        {
            // The data for each row in the UIPickerView
            return [pickerData objectAtIndex:row];
        }

        - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
        {
            // whatever you want to happen when a row is selected.

            // here I am assuming you want to remove from the picker and add to the table on selection
            [tableData addObject:[pickerData objectAtIndex:row]];
            [pickerData removeObjectAtIndex:row];

            [tableView reloadData];
            [self.pickerView reloadAllComponents];   
     }




        @end

我希望这一切都是有意义的,我期待着您的来信

非常感谢您的宝贵时间:)


没有下拉菜单自动转换。该过程是手动的,描述如下:

  1. 从 xib 剪切并粘贴到新的 Storyboard 视图控制器(打开 xib,全选并选择复制,然后转到 Storyboard 并将其粘贴到空视图控制器中)。
  2. 将新的视图控制器子类(.m 和 .h)添加到项目中。
  3. 将自定义方法从旧视图控制器子类剪切并粘贴到新视图控制器子类。请注意不要迁移加载 xib 的代码。
  4. 首先将新的自定义视图控制器子类与故事板中的视图控制器关联起来。
  5. 连接所有 IBActions 和 IBOutlet,您就可以开始了!
  6. 或者,您可以寻找使用 segues 而不是 IBActions 的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有可能获得一个 .xib 窗口到选项卡式故事板 的相关文章

随机推荐

  • 2 个 3D 点之间的偏航和俯仰

    我有 2 个 3D 点 我需要获取它们之间的偏航和俯仰弧度 我已经尝试了很多公式 但它不起作用 我的坐标系如下 X left right Y forward backward Z up down 有什么帮助吗 请具体说明 我真的很感激整个公
  • syslog-ng 读取文件权限被拒绝

    我需要通过 Syslog ng 发送 tomcat Catalina out 日志内容 但是 但重新启动 Syslog 服务后 出现权限被拒绝错误 那么我如何授予 Syslog ng 的读取权限以从 CATALINA out 读取 tomc
  • java中的排列迭代器

    我想要一个类 它接受一个正整数并生成一个迭代器 让我迭代该正整数下的正数列表的所有可能的排列 例如 模拟器 p paermulator 3 p next gt 0 1 2 p next gt 0 2 1 p next gt 1 0 2 p
  • 如何使用 smtplib 和 Python 保持 SMTP 连接打开?

    我需要检查 SMTP 服务器的超时 但我的套接字刚刚关闭 我究竟做错了什么 这是我的测试 usr bin python import smtplib import time import datetime import socket soc
  • 查找二进制文件的版本

    有谁知道如何找到已传递给我的函数的二进制文件的版本 我从以下代码中得到了这一页 http www linuxquestions org questions programming 9 reading binary file in pytho
  • 在 Zend HeadScript 视图助手中修改堆栈

    我正在尝试攻击这个问题 https stackoverflow com questions 2253170 zend framework last code to execute before layout is rendered从完全不同
  • 在 JUnit 测试类中哪里配置 log4j?

    看看我写的最后一个 JUnit 测试用例 我在类构造函数中调用了 log4j 的 BasicConfigurator configure 方法 这对于仅从 Eclipse 的 作为 JUnit 测试用例运行 命令运行单个类来说效果很好 但我
  • 当用户在文本框中键入值时,在另一个文本框中显示一个文本框值

    当用户在文本框中输入值时 是否有一种方法可以从一个文本框中获取值并使用 jQuery 动态地将其添加到另一个文本框中 如果有这样的事情 有人可以解释一下该方法吗 问候 兰加纳 你的意思是像http jsfiddle net ZLr9N ht
  • 在多层架构中通过层传递业务实体

    目前我正在开发一个利用多层架构的项目 如中所述应用架构指南2 0 http apparch codeplex com 有 5 层 DAL BLL Facade 表示层和公共层 这里我们有一个业务逻辑层 它由业务组件和业务实体 它们是使用 O
  • 切换到另一个分支而不更改工作区文件

    我从 GitHub 克隆了一个 git 存储库 做了一些更改和一些提交 我做了很多 而且都很脏 所以它们不适合拉请求 现在我创建了分支cleanchanges from origin master 所以它很干净 我想将我的更改作为一次提交提
  • Android 将图像保存到 SD 卡

    UPDATE Added
  • LINQ to SQL 的编译查询何时可以提高性能

    我指的是一篇文章 http www albahari com nutshell speedinguplinqtosql aspx其重点是加速 LINQ to SQL 查询 它提到的技术之一是 使用编译查询 并解释了如何使用它 我希望看到编译
  • Sharepoint 中文档库的全局自定义视图

    在Sharepoint文档库中 当我们创建新文档库时 默认视图是 所有文档 这个 我们可以制作一个自定义视图视图 gt 创建视图 位于文档库视图的右上角 我创建了一个新的标准视图并将其命名为 Chromed View 我编辑了它 然后我发现
  • 为什么 WebGL 比 Canvas 更快?

    如果两者都使用硬件加速 GPU 来执行代码 为什么 WebGL 比 Canvas 更快 我的意思是 我想知道为什么在低级别上 从代码到处理器的链条 会发生什么 Canvas WebGL 直接与驱动程序通信 然后与显卡通信 Canvas 速度
  • Android 联系人:查找键如何工作?

    在联系人顶部id 安卓也有LOOK UP https developer android com reference android provider ContactsContract ContactsColumns html LOOKUP
  • AttributeError:“str”对象没有属性“mean_validation_score”

    我的代码中出现此错误 AttributeError str object has no attribute mean validation score 我可以做什么来解决它 def report grid scores n top 3 to
  • 通过 hilt 中的不同具体类绑定接口?

    我用希尔特 我有一个接口 但我有两个实现它们的类 我需要在 ViewModels 中实现不同的 Bind 接口 请帮助我 创建自定义组件 或使用自定义范围 您提供的代码会有所帮助 但让我们假设 您的界面 interface YourInte
  • 如何将图标和文本段落放在一行中?

    我想将我的字体很棒的图标和文本段落放到一行中 我该如何修复此代码 div class date style display inline block i class fa fa user o i p style display inline
  • Maven 3 - 值得吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 是否有可能获得一个 .xib 窗口到选项卡式故事板

    我没有很长时间编写代码 Xcode 所以我有点垃圾 基本上我已经创建了一个 xib 并希望它出现在故事 板中 但我真的不知道从哪里开始 因为我有一个 xib 窗口具有UITableView and UIPickerView其中所有代码在 x