Warning window hierarchy when loading delegate

Today I update my Xcode and started updating my app for the new iPhone 5 screen.

I suddenly notice that every time I go from Screen A to Screen BI get this warning:

Warning: Attempt to present on whose view is not in the window hierarchy!

// This delegate method prepares the segue from Screen A (DilemmaViewController) to Screen B (OptionsViewController)
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Executes the following "if" statement if the user wants to add new options
    if ([segue.identifier isEqualToString:@"AddOptions"]) 
    {
        UINavigationController *navigationController = segue.destinationViewController;
        OptionsViewController *controller = (OptionsViewController *)navigationController.topViewController;
        controller.delegate = self;

        // If the user has already put some inputs on the form we send them through the segue
        if ([edit count] > 0){            
            controller.edit = edit;
        }            
    }
}

I haven't touched this since the first version of my app so I'm not sure of what can be happening here.

I've looked around the web and some people talk about moving code from viewDidLoad to viewAppear but I don't think that applies to this scenario.


Well I figured it out.

My problem was that at some point I made the mistake of connecting the Touch Up Inside event on top of the original (and correct) segue event:

在这里输入图像描述

Now that I fixed it:

在这里输入图像描述

It's working correctly again.

链接地址: http://www.djcxy.com/p/66042.html

上一篇: 列表迭代器会导致堆分配?

下一篇: 加载委托时的警告窗口层次结构