2013-03-17 13 views
8

Tôi cần tạo ứng dụng có biểu mẫu đăng nhập/đăng ký và sau đó là Bản đồ Google tùy chỉnh. Tôi mới làm quen với lập trình iOS và cố gắng tìm hiểu những thứ cần thiết cho ứng dụng này rất nhanh.Làm cách nào để tải một trình điều khiển chế độ xem khác từ tệp triển khai của trình điều khiển chế độ xem hiện tại?

Vì vậy, tôi đã tạo giao diện người dùng và phần phụ trợ của biểu mẫu đăng nhập, nó hoạt động. Tôi có một hành động được kích hoạt bởi nút "Đăng nhập" để xác minh thông tin đăng nhập và kích hoạt lỗi hoặc trình bày Bản đồ Google.

Tôi muốn hiển thị rằng Google Map trong một bộ điều khiển chế độ xem khác kiểm soát tệp xib khác. Tôi đã tạo bộ điều khiển xem và tệp xib.

Câu hỏi của tôi là làm cách nào để tôi có thể tải một trình điều khiển chế độ xem khác từ một hành động được đặt trong tệp triển khai của trình điều khiển chế độ xem hiện tại?

Bây giờ, tôi có mã này:

UIViewController *mapViewController = 
       [[BSTGMapViewController alloc] initWithNibName:@"BSTGMapViewController" 
                  bundle:nil]; 

Làm thế nào tôi có thể làm cho nó là "gốc view controller" của cửa sổ và có thể gồm có một quá trình chuyển đổi (xem xét logic của tôi là ok: D)?

Trả lời

17

Nếu bạn muốn mở ViewController từ một số khác thì bạn nên xác định nó như thế này trong số IBAction của mình. Đó là ý tưởng tốt để làm cho các viewController là tài sản mặc dù.

FirstViewController.h

@class SecondViewController; 

@interface FirstViewController : UIViewController 

@property(strong,nonatomic)SecondViewController *secondViewController; 
@end 

FirstViewController.m

-(IBAction)buttonClicked:(id)sender{ 
    self.secondViewController = 
        [[SecondViewController alloc] initWithNibName:@"SecondViewController" 
                   bundle:nil]; 
    [self presentViewController:self.secondViewController animated:YES completion:nil]; 

} 

Bạn nên thực hiện một viewController như rootViewController trong một cái gì đó AppDelegate lớp học của bạn như thế này

YourFirstViewController *firstViewController=[[YourFirstViewController alloc]initWithNibName:@"YourFirstViewController" bundle:nil]; 

self.window.rootViewController=yourFirstViewController; 
+0

Tôi nhớ đã thử điều đó. Hãy để tôi kiểm tra và tôi sẽ báo cáo lại. – Octavian

+1

cách đăng mã của bạn nếu bạn đã thử một cái gì đó? – nsgulliver

+0

Nó hoạt động. Cảm ơn – Octavian