Ios 重用视图的iPhone应用程序显示黑屏

Ios 重用视图的iPhone应用程序显示黑屏,ios,iphone,objective-c,Ios,Iphone,Objective C,所以我正在尝试完成我几年前开始的这个iPhone应用程序。无论如何,我有一个选项菜单,您可以从中创建自定义标高(转到另一个视图)。然后当我回到主菜单,然后是选项菜单时,它只显示一个黑屏 // shows options menu, works the first time -(void) options : (id) sender{ [self.menuViewController.view removeFromSuperview]; [self.bg.view removeFr

所以我正在尝试完成我几年前开始的这个iPhone应用程序。无论如何,我有一个选项菜单,您可以从中创建自定义标高(转到另一个视图)。然后当我回到主菜单,然后是选项菜单时,它只显示一个黑屏

// shows options menu, works the first time
-(void) options : (id) sender{
    [self.menuViewController.view removeFromSuperview];
    [self.bg.view removeFromSuperview];
    [self transition:self.view :navController.view];
}

// goes to custom built level
- (void) createCustom : (int) colorCount : (int) width : (int) height : (int) shuffles : (int) partners : (ToggleMode) toggleMode : (BOOL) colorblind{
    self.gameViewController.isCustom = true;
    self.gameViewController.width = width;
    self.gameViewController.height = height;
    self.gameViewController.shuffles = shuffles;
    self.gameViewController.partners = partners;
    self.gameViewController.toggleMode = toggleMode;
    self.gameViewController.colorCount = colorCount;

    srandom(arc4random());

    [self.navController setNavigationBarHidden:true];
    [self.gameViewController goToLevel];

    [self transition:self.optionsMenu.customLevel.view : gameViewController.view];
}

- (void) transition : (UIView *) fromView : (UIView *) toView{
    [UIView transitionFromView:fromView toView:toView duration:1.0 options:UIViewAnimationOptionTransitionFlipFromRight completion:NULL];
}

当我打印出所涉及的对象时,它们似乎都还在那里,所以我不知道为什么它只是显示黑色。请帮我完成这个应用程序

为什么不使用屏幕显示选项菜单?它将显示在现有ViewController的上方,并且不会解除/解除锁定它。这也将消除在转换之前手动删除视图和视图控制器的需要,这可能是导致黑屏问题的原因。您可以在此模式上添加一个按钮,在用户完成查看选项后将其取消

同样,作为目标c的一个要点,为了让您的生活更轻松,您应该遵循命名方法的正确格式。这涉及到将参数的名称放在每个参数之前,以使调用该方法更容易混淆。例如:

- (void)createCustom:(int)colorCount
                    :(int)width
                    :(int)height
                    :(int)shuffles
                    :(int)partners
                    :(ToggleMode)toggleMode
                    :(BOOL)colorblind {
}
会变成这样:

- (void)createCustomColorCount:(int)colorCount
                              withWidth:(int)width
                              withHeight:(int)height
                              withNumberOfShuffles:(int)shuffles
                              WithNumberOfPartners:(int)partners
                              withToggleMode:(ToggleMode)toggleMode
                              setColorBlind:(BOOL)colorblind {
}
为了说明这有什么帮助,下面是一个如何调用方法的示例:

[self createCustom:0
                  :100
                  :100
                  :5
                  :5
                  :nil
                  :NO];
与:

[self createCustomColorCount:0
                   withWidth:100
                  withHeight:100
        withNumberOfShuffles:5
        WithNumberOfPartners:5
              withToggleMode:nil
               setColorBlind:NO];

正如您在第二种方法中所看到的,每个参数值对应的内容更加清晰,而不必返回到该方法的实现。

我启动了一个项目,我希望看到整个过程。如果我从来没有尝试过,我怎么才能知道我喜欢什么或不喜欢什么?这是我在StackOverflow上见过的编辑的最好理由只要调试你的代码,看看你是否在viewDidLoad中写过任何东西,推送后你就是dong POP,那么它就不会出现在viewDidLoad中,因为你必须使用ViewWillExample。。在视图中调用方法将显示并查看