Вы не можете изменять элемент управления UISwitch до тех пор, пока не напишите свой собственный элемент управления,
Но пока лучше всего использовать UISegmentControl и обрабатывать событие для него, чтобы переключать изображения on.png и off.png..
UISegmentedControl* switchView=[[UISegmentedControl alloc] initWithItems:[[[NSMutableArray alloc] initWithObjects:@"On",@"Off",nil] autorelease]];
[switchView setFrame:CGRectMake(20,365,140,28)];
switchView.selectedSegmentIndex=0;
switchView.segmentedControlStyle=UISegmentedControlStyleBar;
[switchView setImage:[UIImage imageNamed:@"onSelected.png"] forSegmentAtIndex:0];
[switchView setImage:[UIImage imageNamed:@"off.png"] forSegmentAtIndex:1];
[switchView addTarget:self action:@selector(checkOnOffState:) forControlEvents:UIControlEventValueChanged];
self.navigationItem.titleView=switchView;
и напишите код метода checkOnOffState, например:
-(IBAction)checkOnOffState:(id)sender{
UISegmentedControl* tempSeg=(UISegmentedControl *)sender;
if(tempSeg.selectedSegmentIndex==0){
[tempSeg setImage:[UIImage imageNamed:@"onSelected.png"] forSegmentAtIndex:0];
[tempSeg setImage:[UIImage imageNamed:@"off.png"] forSegmentAtIndex:1];
}
else{
[tempSeg setImage:[UIImage imageNamed:@"on.png"] forSegmentAtIndex:0];
[tempSeg setImage:[UIImage imageNamed:@"offSelected.png"] forSegmentAtIndex:1];
}
}