Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从UIWindow类更改视图_Iphone_Ios_Objective C_Uiviewcontroller_Uiwindow - Fatal编程技术网

Iphone 从UIWindow类更改视图

Iphone 从UIWindow类更改视图,iphone,ios,objective-c,uiviewcontroller,uiwindow,Iphone,Ios,Objective C,Uiviewcontroller,Uiwindow,我想知道如何从UIWindow类更改视图。例如,我的应用程序有一个倒计时计时器视图,当用户启动计时器时,他们可以切换到其他屏幕,计时器在状态栏中运行,我想要的是当用户点击状态栏时(我在状态栏顶部有一个自定义按钮),它触发此方法并将视图从当前视图更改为计时器视图 - (void)statusbarButtonTouched { NSLog(@"Button TOuched"); [self addSubview:??] } 根据文件 - (void)removeFromSu

我想知道如何从UIWindow类更改视图。例如,我的应用程序有一个倒计时计时器视图,当用户启动计时器时,他们可以切换到其他屏幕,计时器在状态栏中运行,我想要的是当用户点击状态栏时(我在状态栏顶部有一个自定义按钮),它触发此方法并将视图从当前视图更改为计时器视图

- (void)statusbarButtonTouched
{

    NSLog(@"Button TOuched");

    [self addSubview:??]

}
根据文件

- (void)removeFromSuperview
将接收器与其superview和窗口解除链接,然后将其删除 从应答器链


使用定义的属性创建
timerView
应用程序内委托:

AppDelegate.h

@property (nonatomic, retain) UIView *timerView;
AppDelegate.m

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[FLViewController alloc] initWithNibName:@"FLViewController" bundle:nil] autorelease];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];


    self.timerView = [[UIView alloc] initWithFrame:self.window.frame];
    [self.timerView setBackgroundColor:[UIColor greenColor]];
    [self.window addSubview:self.timerView];
    [self.timerView setHidden:YES];


    return YES;
}
将此视图放在前面的代码:

- (IBAction)shouTimerViewTouched:(id)sender {
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [delegate.timerView setHidden:NO];
    [delegate.window bringSubviewToFront:delegate.timerView];
}
就这样。你可以从这里拉来运行演示


干杯。

您的意思是想在窗口中添加一个视图,以便在整个应用程序中随时将其放在最前面,对吗?是的。。。我需要删除当前视图(无论它是什么)并将timerView放在顶部。我认为您不需要删除当前视图,只要在窗口中添加视图,然后再将其删除即可。您可以共享此示例代码吗?