2013-10-23 35 views
0

我的應用程序的故事板看起來像這樣。將一個NSInteger類型的變量傳遞給一個UIPageViewController

enter image description here

還有就是在PageViewController數組定義網站列表。我現在要做的是讓用戶在MainViewController的文本字段中鍵入索引號,並且當您點擊按鈕時,在頁面視圖控制器中顯示數組中的相應網站。下面是我的代碼(I知道有在此應用程序的缺陷。這僅僅是一個演示),

PageViewController.m

#import "MainViewController.h" 
#import "PageViewController.h" 

@interface MainViewController() 

@property (nonatomic, assign) NSInteger selectedIndex; 

@end 

@implementation MainViewController 

- (IBAction)buttonPressed:(id)sender 
{ 
    self.selectedIndex = [self.textField.text integerValue]; 
    [self performSegueWithIdentifier:@"ToNext" sender:nil]; 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    PageViewController *pageVC = [segue destinationViewController]; 
    pageVC.index = self.selectedIndex; 
} 

@end 

selectedIndex屬性獲取的數量,用戶類型正確。當它傳遞到pageVC時出現問題。

我有另一個名爲indexNSInteger鍵入PageViewController來檢索傳入的值。問題是它總是顯示0.

有人可以告訴我我在這裏失蹤了嗎?我真的很感激任何建議。

我也上傳了一個項目,演示了我的問題here,以防我的問題不太清楚。

回答

1

在代碼中刪除:

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 
    [self createPages]; 
    self.dataSource = self; 

    NSLog(@"Index = %lu", self.index); 
    [self setViewControllers:[NSArray arrayWithObject:self.pages[self.index]] direction:UIPageViewControllerNavigationDirectionForward animated:true completion:nil]; 
} 

並替換:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    [self createPages]; 
    self.dataSource = self; 

    NSLog(@"Index = %d", self.index); 
    [self setViewControllers:[NSArray arrayWithObject:self.pages[self.index]] direction:UIPageViewControllerNavigationDirectionForward animated:true completion:nil]; 
} 
+0

謝謝,這解決了這個問題。 :) – Isuru

+0

不客氣;) –

相關問題