2012-10-25 95 views
0

不知道如何標題這個問題,但我有這樣一個問題:直到現在我的應用程序主要運行在一個導航控制器與表視圖。但是現在我正在嘗試整合下拉菜單,並且無法正確完成。管理導航控制器/視圖控制器

心中已經做過的方式和它的作品

的changeController從一個按鈕調用。 ChangeController在appdelegate中。

- (void) ChangeController 
{ 
    self.window.backgroundColor = [UIColor blackColor]; 
    DropDownExample *e = [[DropDownExample alloc] initWithStyle:UITableViewStyleGrouped]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:e]; 
    [e release]; 
    [self.window addSubview:self.navigationController.view]; 
    self.window.backgroundColor = [UIColor blackColor]; 
    [self.window makeKeyAndVisible]; 
} 

但這種方法有consequances - 沒有過渡如果按下按鈕,設置菜單出現瞬間,無法通過導航欄上方(什麼都沒有)回去。

那麼如何正確地做到這一點?我對ios很陌生,所以告訴我整個想法如何做到這一點。

Didfinishlaunchingwithoptions從的appdelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 

     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease 

]; 
    // Override point for customization after application launch. 
    self.window.backgroundColor = [UIColor whiteColor]; 

    TableViewController *tableVC = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil andType:CONTROLLER_TYPE_FIRST]; 
    UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:tableVC]; 
    self.navigationController = navC; 
    [tableVC release]; 
    [navC release]; 
    self.window.rootViewController = _navigationController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 
+0

是否要在導航堆棧上插入新的控制器,或者是否使用其他導航控制器啓動? – mayuur

+0

嗯,不知道老實說..我只是希望他們之間的過渡看起來像往常一樣,我有能力回到視圖從它被稱爲 – Datenshi

回答

3

好方法,這裏的答案。將方法changeController寫入Button所在的同一類中,該方法調用changeController

在該方法中,編寫該代碼。

- (void) ChangeController 
{ 
    DropDownExample *e = [[DropDownExample alloc] initWithStyle:UITableViewStyleGrouped]; 
    [self.navigationController pushViewController:e animated:YES]; 
    [e release]; 
} 

你想要的是在當前堆棧頂部插入新的UIViewController。如果默認情況下你會在頂部有一個導航欄,那麼默認情況下會有一個後退Btn,這會彈出該控制器。

+0

但我如何訪問navigationController這種方式pushViewController? – Datenshi

+0

'self.navigationController'可以訪問導航控制器。順便說一句,從AppDelegate發佈你的appDidFinishLaunching方法。 – mayuur

+0

您提問的附加方法。 self.navigationController給出了在ButtonClass中找不到的屬性。對不起,如果這些都是基礎知識,我只有5天的Objective-C和ios編程。這與我習慣的Java有點不同。 – Datenshi

相關問題