Trong một nỗ lực dường như không bao giờ kết thúc để tìm hiểu thêm về phát triển iphone, tôi đã chơi xung quanh với một số mã nguồn có sẵn thông qua trang web của nhà phát triển táo. Ví dụ cụ thể mà tôi đang làm việc là Core Data Books, được tìm thấy here. Các DetailViewController, và AddViewController được thực hiện theo chương trình, bởi vì không có bất kỳ tập tin xib cho chúng. Câu hỏi của tôi là về cách thêm các thứ vào một cách có lập trình mà không cần sử dụng IB. Tôi muốn đặt một UISwitch bên dưới UITableView có thông tin chi tiết về một cuốn sách cụ thể trong DetailView. Làm thế nào để tôi làm điều này? Đây là những gì tôi đã cố gắng cho đến nay:Tạo một UISwitch Lập trình
Trong AddViewController, tôi thiết lập các UISwitch:
@interface AddViewController : DetailViewController {
id <AddViewControllerDelegate> delegate;
UISwitch *onoff;
}
@property (nonatomic, assign) id <AddViewControllerDelegate> delegate;
@property (nonatomic, retain) IBOutlet UISwitch *onoff;
Tôi cũng thiết lập một IBAction:
- (IBAction)flip:(id)sender;
Sau đó, tôi tổng hợp nó trong AddViewController. m tập tin, nhưng không có gì xảy ra. Tôi chỉ cần thiết lập công tắc và làm cho nó để tôi có thể kiểm soát những gì nó làm từ IBAction của tôi mà tôi thiết lập. Tôi biết điều này thật đơn giản, nhưng tôi không thể hiểu được. Vì thế nên bất kỳ sự giúp đỡ nào cũng được đánh giá cao! Cảm ơn
Sửa 1
Vì vậy, tôi thực hiện các mã như tôi đã hướng đến trong viewDidLoad, như vậy:
- (void)viewDidLoad {
[super viewDidLoad];
UISwitch *onoff = [[UISwitch alloc] initWithFrame: CGRectZero];
[onoff addTarget: self action: @selector(flip:) forControlEvents:UIControlEventValueChanged];
// Set the desired frame location of onoff here
[self.view addSubview: onoff];
Và nó ném hai cảnh báo nói rằng việc khai báo địa phương của 'ONOFF' da biến cá thể. Nhưng mặc dù có những khoản thu nhập đó, UISwitch bật lên rất tốt, nhưng khi tôi di chuyển nó, hoặc sử dụng nó, có vẻ như nó không hoạt động đầy đủ. Đối với hành động của tôi trông giống như sau:
- (IBAction)flip:(id)sender {
if (onoff.on) NSLog(@"On");
else NSLog(@"Off");
}
Bất cứ khi nào nút bật, bảng điều khiển sẽ đọc và khi tắt, bảng điều khiển sẽ đọc. Đúng? Bất cứ lúc nào tôi di chuyển nó, nó chỉ lặp lại trong giao diện điều khiển, tắt. Nếu nó bật, hoặc nếu nó tắt, nó chỉ hiển thị ra. Tôi đang làm gì trên thế giới? Hãy giúp tôi! Cảm ơn
Tại sao không sử dụng IB? Và nếu bạn không sử dụng nó, thì tại sao những thứ được khai báo là IBOutlet và IBAction? – gerry3
Chà. Điểm tuyệt vời. Tôi thực sự rất thích sử dụng IB, nhưng như tôi đã đề cập, tôi đang cố gắng để có được điều này để làm việc trên một cái nhìn mà không sử dụng IB. Có cách nào dễ dàng để thêm một tập tin xib vào một màn hình chỉ là populating một uitableview và hiển thị các tế bào thông tin? Cảm ơn – Steve