我们有一些蓝牙类,可以创建与蓝牙模块的连接。
只要这个类还活着,连接就会存在。
我们正在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;
}];
答案 0 :(得分:1)
首先,使用AppDelegate
有点像单身人士(你保留对一个初始化一次的对象的引用,并在有人问的时候将引用传递给它)。
但要回答你的问题,你有几种方法可以完成这个
1)委派 - viewA
是viewB
的委托,您可以在它们之间传递信息。看看Link
2)KVO - viewB
注册到“广播电台”并听取按摩并viewA
广播到该“广播电台”,通过该视频,您可以在viewA
之间传递信息和viewB
(即使在多个视图之间)。看看Link
3)segue - 您可以在viewA
和viewB
之间使用segue
传递信息(如果它们与一个连接)。请检查此Link
上述每种方法都有优点和缺点。你需要弄清楚什么是最适合你的情况