in my second view, in ButtonPress, I set a breakpoint, and "key" is out of scope.
So it is not "passed" to the third view.
Then post the code that shows how "key" is defined and how you are passing it from one view controller to another. Without all the relevant code posted, it is impossible to say what might be wrong.
When you say "cleMission" without any qualifiers, then it refers to either a temporary variable or an instance variable of the class in which the code occurs. Since I did not see any temporary variable of that name in your code, I assume that it refers to an instance variable of the class in which the code resides.
When you say
Code:
pointControle.cleMission = @"456";
you are setting the instance variable of pointControle (using the setter for that variable). And pointControle is itself an instance of the class pointsControleController. (By the way, it is good practice to name your classes starting with an upper case letter and instances of objects starting with a lower case letter.)
The code that you said was giving you the problem was
Code:
pointControle.cleMission = cleMission;
which occurred in the implementation of your detailMissionController class. Therefore the "cleMission" referred to on the right hand side of the equal sign must be the cleMission instance variable of a detailMissionController object. This is certainly not the same thing as the "cleMission" that is being set in
Code:
pointControle.cleMission = @"456";
so that is why I said they are not the same cleMission.
You need to have a clear idea of what an instance variable is. I recommend "Programming in Objective C" by Kochran. It is a very good book, even if you don't know C very well.