如何在视图之间保持类活着?

时间:2015-02-16 09:14:10

标签: ios objective-c

我们有一些蓝牙类,可以创建与蓝牙模块的连接。 只要这个类还活着,连接就会存在。 我们正在viewA中创建该类实例。 当我们转到viewB时,我们希望通过将BL类传递给下一个视图viewB来保持BL类的活动。

我们如何做到这一点(没有单身,只是传递,或使用app委托)

viewA中的

//creating the instance of the BL class

   self.bluetooth=[[BLEModule alloc] init];
    self.bluetooth.delegate=self;
  ...
  ....
//go the next view-viewB (now pass that instance self.bluetooth to viewB)

        UIViewController *next=[[CallTestView alloc]init];
        AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
        [UIView transitionFromView:delegate.window.rootViewController.view
                            toView:next.view
                          duration:1.5f
                           options:UIViewAnimationOptionTransitionFlipFromLeft
                        completion:^(BOOL finished)
         {
             delegate.window.rootViewController=next;

         }];

1 个答案:

答案 0 :(得分:1)

首先,使用AppDelegate有点像单身人士(你保留对一个初始化一次的对象的引用,并在有人问的时候将引用传递给它)。

但要回答你的问题,你有几种方法可以完成这个

1)委派 - viewAviewB的委托,您可以在它们之间传递信息。看看Link

2)KVO - viewB注册到“广播电台”并听取按摩并viewA广播到该“广播电台”,通过该视频,您可以在viewA之间传递信息和viewB(即使在多个视图之间)。看看Link

3)segue - 您可以在viewAviewB之间使用segue传递信息(如果它们与一个连接)。请检查此Link

上述每种方法都有优点和缺点。你需要弄清楚什么是最适合你的情况