xcode - IOS 6: present a modal view controller -
i have tab view controller , login view controller in xcode 4.6 ios 6.1 sdk
when app start loaded "view controller 1". how can show login view if user not logged? in viewdidload() of view controller 1 have insert code:
mynewappappdelegate *appdelegate = [[uiapplication sharedapplication] delegate]; if(!appdelegate.isuserlogged){ uistoryboard *mainstoryboard = [uistoryboard storyboardwithname:@"mainstoryboard" bundle:nil]; loginviewcontroller *controller = (loginviewcontroller*)[mainstoryboard instantiateviewcontrollerwithidentifier:@"loginview"]; [self presentviewcontroller:controller animated:yes completion: nil]; }
but nil happen. how can show login view controller?
thanks support
i'm using xamarin studio 4.0 xcode 4.6 , ios 6.1 , able show login screen using storyboard. code in c# i'm sure can translate objective-c equivalent.
when using storyboard window , rootviewcontroller set "initial scene" storyboard. in appdelegate instantiate instance of loginviewcontroller using "storyboard id". cache instance of current rootviewcontroller , set new loginviewcontroller rootviewcontroller.
[register ("appdelegate")] public partial class appdelegate : uiapplicationdelegate { loginviewcontroller logincontroller; public override uiwindow window { get; set; } public override bool finishedlaunching(uiapplication application, nsdictionary launchoptions) { logincontroller = window.rootviewcontroller.storyboard.instantiateviewcontroller("loginscene") loginviewcontroller; logincontroller.initialviewcontroller = window.rootviewcontroller; window.rootviewcontroller = logincontroller; homecoming true; } //... other overrides ... } inside loginviewcontroller i've created property hold initialviewcontroller , action login button. after login work reset rootviewcontroller initialviewcontroller cached , dismiss current loginviewcontroller.
public partial class loginviewcontroller : uiviewcontroller { public uiviewcontroller initialviewcontroller { get; set; } public loginviewcontroller (intptr handle) : base of operations (handle) { } partial void onloginclicked(monotouch.uikit.uibarbuttonitem sender) { //... login work here ... uiapplication.sharedapplication.delegate.window.rootviewcontroller = initialviewcontroller; dismissviewcontroller(false, null); } } the loginviewcontroller can standalone have in storyboard. doesn't need connected other scenes or need segues.
xcode uiviewcontroller ios6
No comments:
Post a Comment