在Xcode中使用分段控制作为单选按钮

时间:2013-06-23 18:53:34

标签: iphone objective-c xcode ipad uisegmentedcontrol

我刚刚开始自学Objective-C和iphone / ipad开发。凭借我之前在Java / Android编码方面的独特经验,我对这种新语言遇到了一些问题。

我正在尝试在此应用中使用UISegmentedControl来决定在按下“成员”按钮时将显示哪个视图。我是通过在按下“成员”按钮时抓取名为“UISegmentedControl”的memberPicker中的当前所选文本来执行此操作,然后检查它是@"Current"还是{{1决定显示什么视图。

enter image description here

此功能似乎工作正常,但是,当我单击UISegmentedControl中的“Alumni”按钮时,应用程序崩溃时出现以下错误:

@"Alumni"

我相信我的问题是正确地声明或设置我的UISegmentedControl,我知道它可以采用数组等。但我只需要在选择当前或校友之间交替,然后我的“成员”按钮将完成剩下的工作。有关如何解决此问题的任何想法?

以下是我的.m视图中的代码

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MainPageViewController MemberSegmentedControl:]: unrecognized selector sent to instance 0x7557250'

2 个答案:

答案 0 :(得分:2)

您可能已将Interface Builder中的UISegmentedControlIBOutlet MemberSegmentedControl连接到@interface,后来您在班级的UISegmentedControl中删除了该memberPicker。如果除{{1}}之外没有其他连接,请检查Interface Builder中{{1}}的连接。

希望它有所帮助!

答案 1 :(得分:1)

您获得的错误意味着您正在调用.m文件中不存在的IBAction /函数 MemberSegmentedControl:。也许您以前创建了此函数并将其与UISegmentedControl的 Value Changed 相关联,但您没有编写其实现(在.m文件中)。也许你已经删除了这个,但连接仍然存在。要检查这一点,请按照以下步骤操作。

  
    
        
  1. 打开界面生成器
  2.     
  3. 点击 UISegmentedControl
  4.     
  5. 打开 Connections Inspector (单击“查看”菜单,单击“实用工具”,然后单击“显示连接检查器”。或者,您可以按 Command + Options + 6
  6.     
  7. 已发送事件下,检查是否有任何事件(特别是 值已更改 )连接到“文件所有者的MemberSegmentedControl :“即可。如果是,请单击x按钮将其删除,然后重试。
  8.        

如果您的问题无法解决,请执行以下操作

  
    
        
  1. 分享Interface Builder文件(XIB文件)的屏幕截图
  2.     
  3. 共享头文件(.h文件)
  4.