1

我正在构建一个应用程序(论坛)并且我有一个 UINavigationController。我想在用户的任何 UIViewController 中显示一条警报消息。我真的不知道我应该怎么做。

非常感谢您的帮助。

这是我想做的一些示例:这是示例截屏

4

2 回答 2

1

您可以将此视图添加到 中keyWindow,并将其置于前面。或者您可以将您的 alertView 设置为 UIWindow,通过这种方式,您可以在任何地方显示它。

static UIWindow *_sharedNavigationBarAlertView = nil;
+ (UIWindow *)sharedNavigationBarAlertView
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedNavigationBarAlertView = [[UIWindow alloc] initWithFrame:CGRectZero];
        _sharedNavigationBarAlertView.windowLevel = UIWindowLevelStatusBar + 1.0;
        _sharedNavigationBarAlertView.hidden = YES;
        // add other views...
    });
    return _sharedNavigationBarAlertView;
}

+ (void)showWithInformation:(id)info
{
    // [self sharedNavigationBarAlertView].imageView.image = ...;
    // [self sharedNavigationBarAlertView].titleLabel.text = @"";
    // [self sharedNavigationBarAlertView].detailLabel.text = @"";
    CGRect frame = [UIScreen mainScreen].bounds;
    frame.size.height = 44.0;
    [self sharedNavigationBarAlertView].frame = frame;
    [self sharedNavigationBarAlertView].hidden = NO;
}
+ (void)hide
{
    [self sharedNavigationBarAlertView].hidden = YES;
}

// To release the shared alert window, just set it to nil
于 2013-07-11T20:35:36.643 回答
0

UINavigationBar是 的子类UIView,因此您可以向其添加子视图。您可以通过navigationController任何视图控制器上的属性或从您UINavigationController保留的任何位置访问它。只需添加您的通知子视图并在延迟后将其删除。

于 2013-07-11T17:32:51.613 回答