如何将TSPopover合并到我的应用程序中,以免导致运行时崩溃?

时间:2013-04-02 23:21:16

标签: ios xcode4.6 uipopover

我正在尝试将TSPopover合并到我的iPad应用程序中(XCode 4.6,带有UITabBarController的故事板,iOS 6.2)。我已将TSPopover代码复制到我的应用程序中,并选择了一个控制器开始。在一个场景中,我将小“i”放在一个圆圈中供用户在需要帮助时点击(它最终会被本地化,因此需要帮助)。所以,我在 -viewDidLoad

中有这段代码
    if(tfShopOpens.text.length == 0 || shopCloses.text.length == 0)  {
/*  (below code copied from the TSPopover demo code)
 UIButton *topButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

 [topButton addTarget:self action:@selector(showPopover:forEvent:) forControlEvents:UIControlEventTouchUpInside];

 topButton.frame = CGRectMake(10,10, 300, 30);
 [topButton setTitle:@"button" forState:UIControlStateNormal];
 topButton.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
 [self.view addSubview:topButton];
 */

 [boHelpStoreHours addTarget:self action:@selector(showPopover:forEvent:) forControlEvents:UIControlEventTouchUpInside];

这是来自.h文件:

- (IBAction)bHelpStoreHours:(UIButton *)sender;
@property (strong, nonatomic) IBOutlet UIButton *boHelpStoreHours;

这来自Connections Inspector:

enter image description here

这是我点击此特定按钮时出现的错误:

  

2013-04-02 15:49:48.016 saori [5495:c07] - [PreferencesViewController bHelpStoreHours:]:无法识别的选择器发送到实例0x8a6c510   2013-04-02 15:49:48.019 saori [5495:c07] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [PreferencesViewController bHelpStoreHours:]:无法识别的选择器发送到实例0x8a6c510'   * 第一次抛出调用堆栈:   (0x26fc012 0x19eae7e 0x27874bd 0x26ebbbc 0x26eb94e 0x19fe705 0x9322c0 0x932258 0x9f3021 0x9f357f 0x9f26e8 0x961cef 0x961f02 0x93fd4a 0x931698 0x2b79df9 0x2b79ad0 0x2671bf5 0x2671962 0x26a2bb6 0x26a1f44 0x26a1e1b 0x2b787e3 0x2b78668 0x92effc 0x222d 0x2155为0x1)   libc ++ abi.dylib:terminate调用抛出异常

我遇到的问题是,我不确定所有内容是否正确连接才能使其正常工作。 TSPopover代码中没有任何评论可以指导我,所以我猜测需要什么。我看过谷歌,所以......没什么!什么导致运行时崩溃?以及如何解决?

1 个答案:

答案 0 :(得分:1)

bHelpStoresHours:中可能不存在@implementation方法。确保您已在PreferencesViewController.m文件中定义了该方法。