/ / UINavigationController és az UITabBarController kapcsolatok megegyeznek az UIViewControllerrel? - ios, iphone, target-c, xcode, uinavigationcontroller

Az UINavigationController és az UITabBarController kapcsolatok megegyeznek az UIViewControllerrel? - ios, iphone, target-c, xcode, uinavigationcontroller

Elkezdtem újonnan megtanulni az xCode-t, és az xCode 5.1-et használom

Elkészültem a Dia-out navigációs sáv, amely ezt a forrást tartalmazza:

https://github.com/John-Lluch/SWRevealViewController

ebben a kódban meg kell adnom az UIViewControllert mint ilyen paramétert:

FrontViewController *frontViewController = [[FrontViewController alloc] init];
UINavigationController *frontNavigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];

amikor ezt teszem, ezt az eredményt kapom:

iphone 5s szimulátor

ez az AppDelegate.m kód is:

#import "AppDelegate.h"
#import "SWRevealViewController.h"
#import "RearViewController.h"
#import "CustomAnimationController.h"
#import "FrontViewController.h"
@interface AppDelegate()<SWRevealViewControllerDelegate>
@end
@implementation AppDelegate
@synthesize window = _window;
@synthesize viewController = _viewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window = window;

RearViewController *rearViewController = [[RearViewController alloc] init];

FrontViewController *frontViewController = [[FrontViewController alloc] init];
UINavigationController *frontNavigationController = [[UINavigationController alloc]     initWithRootViewController:frontViewController];

UINavigationController *rearNavigationController = [[UINavigationController alloc] initWithRootViewController:rearViewController];

SWRevealViewController *revealController = [[SWRevealViewController alloc] initWithRearViewController:rearNavigationController frontViewController:frontNavigationController];

revealController.delegate = self;

//revealController.bounceBackOnOverdraw=NO;
//revealController.stableDragOnOverdraw=YES;

//self.viewController = revealCont;
self.viewController = revealController;

self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}

és ez a FrontViewController.h:

#import <UIKit/UIKit.h>

@interface FrontViewController : UITabBarController

@end

A navigációs sáv nem tudja kezelni a TabBarControllert?

szerkesztette: ez a FrontViewController felhasználói felületem. itt írja be a kép leírását

válaszok:

1 a válasz № 1

Beágyazod FrontViewController ami a UITabBarController benne UINavigationController, amit az Apple nem tesz lehetővé. Az Apple ezt mindig NEM mondja ez tutorial. És miután megcsináltad, próbáld beágyazni SWRevealViewController.

A bemutató csak alapvetően megmutatja, hogyan kell beültetni UITabController és UINavigationController, de nem mutatja az Ön számára tényleges választ.

Amit elérni akarsz, valójában nem engedi meg az Apple szabályait. Tehát vagy beágyazhatja SWRevealViewController belül UITabController VAGY eltávolíthatja a UITabController és hozzon létre egy egyéni TabBar-ot UIView és UIButtons és módosítsa a lap nézeteit a UIButton"s - (IBAction).


0 a válasz № 2

Azt hiszem, a probléma az - (id) initWithNibName: (NSString *) nibNameOrNil köteg: (NSBundle *) nibBundleOrNil, amely megpróbálja inicializálni a VC-t az XIB-ről, a kísérletem nem sikerült.

Ezután megpróbáltam sikerülni:

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window = window;

UIViewController *firstVC = [UIViewController new];
firstVC.title = @"Title 1";

UIViewController *secondVC = [UIViewController new];
secondVC.title = @"Title 2";

UITabBarController *frontViewController = [[UITabBarController alloc] init];
[frontViewController setViewControllers:@[firstVC, secondVC]];

UINavigationController *frontNavigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];

self.window.rootViewController = frontNavigationController;
[self.window makeKeyAndVisible];

return YES;
}

A VC-t elhelyezheti a Storyboard-ban, azonosítóval és hívással:

 UITabBarController *tagTBC = [self.storyboard instantiateViewControllerWithIdentifier:@"tagViewController"];

Kapcsolódó kérdések


Hozzászólások (0)

Hozzászólni