StarsViewController *type = [[StarsViewController alloc] autorelease];
Эта строка (выше) создает экземпляр StarsViewController.Это не тот же экземпляр (тот же объект), что и у другого только что созданного StarsViewController.
Так что у этого нового экземпляра StarsViewController есть свой собственный тип typeofstar, который изначально будет равен нулю.
Имеет ли это смысл?
РЕДАКТИРОВАТЬ:
Как это исправить:
Ну, вы могли бы передавать вещи непосредственно от одного контроллера представления к другому.В контроллере представления StepOne можно создать свойство, которое можно установить непосредственно перед его представлением.Вы делаете это сейчас на самом деле, если вы посмотрите, как вы устанавливаете modalTransitionStyle на вашем контроллере представления StepOne.Это собственность.Вы можете создать другое свойство с именем "typeOfStar" и установить его таким же образом.
У вас также есть много других возможностей для обмена данными.Когда ваше приложение работает, вы должны думать о нем как о множестве объектов, находящихся в памяти в любой момент времени.Ваш делегат приложения - это один объект, к которому довольно легко добраться из любого места, поэтому люди используют его для хранения небольших вещей, которые они хотят использовать во всем приложении.
Вы можете посмотреть на глобальные переменные как на другой вариант.(используйте с умом!)
По мере того, как ваши потребности усложняются, у вас могут быть другие предметы, которые вы держите в качестве синглетонов или свисающие с них.
Надеюсь, это поможет.