Kendi .xib ile bir UIViewController var ve ekranın alt yarısında farklı bilgileri görüntülemek için UISegmentedControl kullanmak istiyorum. Bir UIView'i, the container .xib içinde yarattım ve onu, içerideki UIViewController'da detailView
adlı UIView özelliğine bağladım.Bir UIView içine .xibs yükleniyor
IB'de üç .xib dosyası oluşturduktan sonra, her segmentin detailView
alanında görüntülenmesi gerektiği görünümüne sahip oldum.
Artık takılıyorum çünkü uygun .xib dosyasını detailView
alanına yükleme ve boşaltma işlemini bilmiyorum.
- (void)segmentValueChanged:(id)sender {
switch ([sender selectedSegmentIndex]) {
case 0:
// Unload whatever is in the detailView UIView and
// Load the AddressView.xib file into it
break;
case 1:
// Unload whatever is in the detailView UIView and
// Load the ContactsView.xib file into it
break;
case 2:
// Unload whatever is in the detailView UIView and
// Load the NotesView.xib file into it
break;
default:
break;
}
}
Peki nasıl boşlukları doldurmak ve boşaltıyorlar/düzgün DetailView UIView yüklemek: nerede burada?
Teşekkürler!
viewDidLoad kod
--UPDATE--
artık: - (void) viewDidLoad { [süper viewDidLoad];// Set the default detailView to be address since the default selectedSegmentIndex is 0.
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"AddressView" owner:self options:nil];
// assuming the view is the only top-level object in the nib file (besides File's Owner and First Responder)
UIView *nibView = [nibObjects objectAtIndex:0];
self.detailView = nibView;
self.detailContainerView.autoresizesSubviews = YES;
[self.detailContainerView addSubview:self.detailView];
NSLog(@"self.view is %@", self.view);
NSLog(@"self.detailContainerView is %@",self.detailContainerView);
NSLog(@"self.detailView is %@", self.detailView);
}
Ve ayıklayıcı mesajlarıdır:
self.view is UIView: 0x3a24d80; frame = (0 0; 320 460); autoresize = RM+BM; layer = CALayer: 0x3a35190
self.detailContainerView is UIView: 0x3a1aea0; frame = (20 57; 280 339); autoresize = W+H; layer = CALayer: 0x3a36b80
self.detailView is UIView: 0x3a24d80; frame = (0 0; 320 460); autoresize = RM+BM; layer = CALayer: 0x3a35190
teşekkürler!
Bunu nasıl bir araya getireceğimi pek emin değilim. .xib'lerin her biri için 'loadNibNamed: owner: options:' öğesini çağırmam mı gerekiyor?Bunun nasıl yapılacağına dair fikir edinmek için bazı kaba kodları görmek mümkün mü? Çok teşekkürler! –
Cevabım için bazı kodları ekledim. –
Ole, harika kod için teşekkürler! İçinde bulunduğum tek sorun, -loadNibNamed'i çağırdığımda: sahip: seçenekleri NIB'nin içinde olması gereken tüm görünümün üzerine yerleştirilir. Görünen o ki, self.detailView = nibView; 'yüklenen NIB'yi, IB'de oluşturulan detay Görünümü'ne sığacak şekilde yeniden boyutlandırmıyor. Burada herhangi bir fikir var mı? Teşekkürler! –