ios - 创建全局 UIView

标签 ios objective-c uiview uiviewcontroller

我正在尝试创建一个具有类似于 facebook 的聊天气泡功能的应用程序。

当用户导航到某个页面 (InCallViewController) 时,他们可以通过视频聊天连接到另一个人。当他们在连接后导航离开此页面时,我希望视频 View 保持 float 在屏幕上,但允许他们在应用程序中做他们想做的事。

为此,我创建了一个 InCallViewController 类,它允许用户与其他人联系。连接后,视频将显示在 View 中。这个 View 是可移动的(类似于 facebook 的聊天气泡)并且可以完美地显示视频聊天,但是当我退出页面并转到应用程序中的另一个页面(AccountViewController)时,我无法将这个 View 保留在屏幕上。我尝试了很多东西,包括在后面的页面中将此 View 设置为 subview 。但是,当我这样做时, subview 不显示。

我的账户 View .m

- (void)viewDidLoad
{


    [super viewDidLoad];

    InCallViewController *inCallViewController = [[InCallViewController alloc] initWithNibName:@"InCallViewController" bundle:nil];

    [self.view addSubview:inCallViewController.previewView];
    [self.view bringSubviewToFront:inCallViewController.previewView];

    (Do some other set up stuff)

}

InCallViewController.h

@interface InCallViewController : UIViewController <UIAlertViewDelegate> 
{

    CGPoint currentTouch;
    NSArray *viewArray;
    AVAudioPlayer *audioPlayer;
}

@property (weak, nonatomic) IBOutlet UIView *previewVideoView;

previewView 是 InCallViewController 类中的一个 UIView。这是在 IB 中连接的,并且在 InCallController 类中时完美运行。问题是,将它添加为另一个类中的 subview 时它不会显示。我想知道我做错了什么,或者是否有更好的方法在我退出 InCallViewController 后将“previewView”保留在屏幕上。

谢谢

最佳答案

您应该考虑实现一个容器 viewController。从 iOS6 和 xcode 4.5 开始,这变得非常简单。 包含的 viewController 可以处理您的预览 View ,这些预览 View 覆盖在当前包含在其中的任何 viewController 上。 您可以将您想要实现的目标与 Apple 使用 UInavigationController(也是容器 View Controller )实现的目标进行比较:它包含愉快地显示其内容的 viewController,但 navigationController 确保 navigationBar 始终存在,对于所有 viewController,甚至在动画期间。 Apple 有一些很好的文档,甚至还有关于此的 WWDC session 。

侵入 [[UIApplication sharedApplication] keyWindow] 是非常糟糕的设计,并且公然违反了 MVC 模式。它有效,但它仍然是一种 hack,将来可能会让你头疼。

关于ios - 创建全局 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18705532/

相关文章:

ios - NSMutableArray 中的递减

iphone - UIScrollView 位于页面中间?

ios - UIView动画 block 中的图层动画

ios - FBLoginKIt 集成问题 +[FBSDKInternalUtility areAllPermissionsReadPermissions :]: unrecognized selector

iphone - NSURLConnection 的 Xcode 4 警告 "Expression result unused”

ios - 接近传感器在首次使用后无法正常工作

ios - uitableview 单元格在加载时离开屏幕时显示错误的数据

ios - 无法在 viewDidLoad 中更新 view.layer.frame?

iphone - Ios/iphone 创建/维护网络 session

ios - 未找到 metamacros.h,通过 CocoaPods 的 ReactiveCocoa