2012-07-26 43 views
5

Tôi đang sử dụng bảng phân cảnh cho thời gian FIRST trong ứng dụng iOS của mình. Tôi có 2 lượt xem trong Bảng phân cảnh (A & B). Giả sử A là bộ điều khiển xem ban đầu của tôi trong bảng phân cảnh của tôi. Khi ứng dụng của tôi bị xóa, tôi có thể thấy bộ điều khiển xem A. Cho đến nay evrything đang hoạt động như mong đợi. Bây giờ trong bộ điều khiển xem A của tôi, tôi đang kiểm tra xem người dùng có đăng nhập hay không. Nếu người dùng không đăng nhập thì tôi muốn trình bày bộ điều khiển xem B. Làm thế nào tôi có thể hiển thị B bằng cách sử dụng phương thức PresentModalViewController theo cách lập trình?PresentModalViewController trong Storyboard lập trình iOS 5

Dưới đây là bộ của tôi lên

enter image description here

Đây là mã của tôi

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    if (!isUserLoggedIn) { 
     NSLog(@"USER NOT LOGGED IN...."); 
     UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
     LoginViewController *vc = (LoginViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"B"]; 
     [self presentModalViewController:vc animated:YES]; 
    } 


} 

Bất kỳ loại help is appreciated. Cảm ơn

Trả lời

10

Điều bạn đã làm cho đến nay có vẻ chính xác .. Bạn có nhớ thực sự đặt số nhận dạng của B trong bảng phân cảnh không?

Ngoài ra, bạn có thể muốn thử

[self.storyboard instantiateViewControllerWithIdentifier:@"B"]; 

thay vì những gì bạn đang làm.

Cập nhật:

Dưới đây là những gì các phương pháp viewDidLoad có thể trông giống như:

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    if (!isUserLoggedIn) { 

     NSLog(@"User is not logged in."); 

     LoginViewController *vc = (LoginViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"B"]; 
     [self presentModalViewController:vc animated:YES]; 

    } 

} 

Ngoài ra, tôi nhìn thấy từ hình ảnh mà bộ điều khiển xem đầu tiên bạn không được thiết lập cho bất kỳ lớp học đặc biệt. Nó chỉ nói "Xem điều khiển", trong khi thứ hai cho thấy "Đăng nhập View Controller" một cách chính xác.

Lưu ý: Tôi không có quyền truy cập vào Xcode ngay bây giờ, vì vậy tôi chưa thử nghiệm.

+0

Mã định danh được đặt chính xác cho bảng phân cảnh. Tôi nên viết dòng ở đâu và tôi nên xóa mã nào? – iOSAppDev

+0

@iOSAppDev: Ok. Hãy thử mã tôi đã đăng ngay bây giờ. Nếu điều đó không có tác dụng thì có cái gì khác sai/thiếu. Ngoài ra, hãy chắc chắn rằng những dòng mã thực sự được thực hiện. Bạn cũng có thể thêm câu lệnh 'NSLog' vào' viewDidLoad' của trình điều khiển khung nhìn mà bạn muốn hiển thị (LoginViewController), chỉ để đảm bảo nó được nạp. – matsr

Các vấn đề liên quan