为TabBarController准备ForSegue

时间:2015-09-28 08:32:25

标签: ios objective-c xcode uiviewcontroller uitabbarcontroller

我正在尝试使用Objective-C将数据从我的ViewController传递到TabBarController。我正在尝试将一些数据分配给“bottomTabEventList”(这是我的自定义TabBarController类的属性)。不幸的是,我的程序因无法识别的选择器实例错误/警告而崩溃。

在TabBarController类的自定义标题中,名为BottomTabview:

@interface BottomTabView : UITabBarController <UITabBarControllerDelegate>

@property(strong,nonatomic)EventList *bottomTabEventList;

@end

ViewController.m中的prepareForSegue方法

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    BottomTabView *btw = [segue destinationViewController];

    //checking
    if(btw == nil)
        NSLog(@"btw in viewController is nil");
    else
        NSLog(@"btw in viewController is NOT nil");

    if(self.eventList.eventList == nil)
        NSLog(@"eventList in viewController is nil");
    else
        NSLog(@"eventList in viewController is NOT nil"); //end of checking

    btw.bottomTabEventList = self.eventList; //This is where crash appears
}

确切的崩溃日志是:

  

- [ViewController setBottomTabEventList:]:无法识别的选择器发送到实例0x7fe923c6ba00   ***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [ViewController setBottomTabEventList:]:无法识别的选择器发送到实例0x7fe923c6ba00'

Segue是从ViewController到BottomTabView,它的类型是“Present Modally”。如果你能帮助/指导我,我真的很感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

问题似乎是a(n) = round((n^3 + 3*n^2 -9*n*(n % 2))/144) 实际上不是btw类型而只是BottomTabView因此崩溃日志给出了:

  

[ViewController setBottomTabEventList:]:无法识别的选择器发送到实例

由于UIViewController不知道UIViewController是什么。

您需要确保BottomTabEventList实际上是btw个实例。

做一点反省,我敢打赌它不会进入这个声明:

BottomTabView